【发布时间】:2013-01-03 08:55:58
【问题描述】:
我正在使用基于 GNU 的操作系统 (Precise Puppy 5.4) 随附的所有程序
说明
- 首先我创建一个类。
- 在该类中我定义了一个方法
- 此方法采用通用命名参数
- 在里面我有一个
if-elif-else语句,它与参数值一起使用 -
if语句确定要返回的字符串
在类之外,我提示传递给变量 userinput 的用户输入。
然后我以userinput 作为参数调用该方法并将返回值分配给
变量名variable。
然后我打印variable。
一些注意事项
首先,我知道还有其他方法可以达到相同的效果。原因 我不使用其中之一是因为我正在进行相当大的文字冒险并且需要 做出大量决策并分配大量变量。
如果我要对不同的部分进行分类,使用代码会容易得多 使用 类作为类别,方法作为特定领域
我知道这个错误与我调用class.function时,该类没有返回值有关。但是该方法不在类内部调用,因此无法从类内部的方法返回值,而是在方法外部。
class classname () :
def methodname (value) :
if value == 1 :
return "Hello World"
else :
return "Goodbye World!"
userinput = raw_input("Enter the number [1]\n")
variable = classname.methodname (userinput)
print (variable)
控制台输出
Enter the number [1] (this is the prompt)
1 (this is the user input)
(now the error)
Traceback (most recent call last):
File "filename.py", line 8, in <module>
variable = (classname.methodname (userinput))
TypeError: unbound method methodname() must be called with
classname instance as first argument (got classobj instance
instead)
这个问题已经解决了。这个问题是一个简单的语法问题。这是固定代码 为解决方案提供最大支持,为格式化这篇文章提供 Lev Levitsky! ^.^
class classname () :
def methodname (self, value) :
if value == "1" :
return "Hello World"
else :
return "Goodbye World!"
userinput = raw_input("Enter the number [1]\n")
variable = classname().methodname (userinput)
print (variable)
【问题讨论】:
-
你的括号太多了;你可以解决几乎所有这些。
-
它们让我更容易阅读。我知道我不需要他们
-
@MartijnPieters 那里,,,我修正了括号哈哈
-
@KonnerRasmussen ..或者可能不是。糟糕,我好像不小心覆盖了您的编辑,抱歉。
-
@LevLevitsky 不用担心...无论如何我更喜欢你的格式 =)
标签: python class python-2.7 typeerror