我正在使用基于GNU的操作系统(Precise Puppy 5.4)的所有程序
if-elif-else
语句,可以使用参数值if
语句确定要返回的字符串在课程之外,我提示传递给变量userinput
的用户输入。
然后我用userinput
作为参数调用方法并将返回值分配给
变量名variable
。
然后我打印variable
。
首先,我知道还有其他方法可以达到同样的效果。原因 我不使用其中一个是因为我正在进行相当大的文本冒险并且需要 做出大量的决定并分配大量的变量。
如果我要对不同的部分进行分类,那么使用代码会容易得多
游戏(即:一个名为Player
的类和名为stats
,inventory
,gold
等的方法
类作为特定区域的类别和方法
我知道错误与以下事实有关:当我调用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)
答案 0 :(得分:3)
你快到了。只需在@staticmethod
;)之前添加def methodname(value)
或者,如果您不打算使用静态方法,请尝试更改methodname的签名以接受一个附加参数self(def methodname (self, value) :
),并确保始终从实例中调用methodname
: variable = (classname().methodname (userinput))
。