我正在尝试将方法的返回分配给变量并且遇到此错误。
class MyClass():
def my_def(self):
return "Hello"
my_variable = my_def()
这是我想要做的Java的等价物。
public class NewException {
public int method1(){
return 1;
}
public int variable = method1();
}
我确信这很简单,但我甚至找不到合适的词来谷歌。任何帮助表示赞赏。
答案 0 :(得分:2)
让我们从方法和函数之间的区别开始,基本上一个方法属于某个对象,而函数则不属于某个对象。例如,
def myFunction():
return "F"
class MyClass:
value = 0
def myMethod(self, value):
old = self.value
self.value = value
return old
myClassInstance = MyClass()
print myClassInstance.myMethod(3)
# 0
print myClassInstance.myMethod(33)
# 3
print myFunction()
# F
请注意,该方法绑定到实例,在创建实例之前调用该方法没有意义。考虑到这一点,您的错误应该更有意义。没有实例(self)就无法调用该方法。这不是唯一的方法,例如有静态方法"。静态方法在类上定义,但是在没有实例的情况下调用它们。例如:
class MyClass:
@staticmethod
def myStaticMethod():
return "static method"
# Consider using an instance attribute instead of a class attribute
def __init__(self):
self.instance_attribute = MyClass.myStaticMethod()
# Or if you need a class attribute it needs to go outside the class block
MyClass.class_attribute = MyClass.myStaticMethod()