python中究竟绑定的方法和未绑定方法是什么。创建对象时它有何不同?
我是python的初学者,我写了这段小代码
class newclass:
def function1(self,var2):
self.var2=var2
print var2
self.fun_var=var2
newobject = newclass
newobject.function1(64)
我收到这样的错误
Traceback (most recent call last):
File "basic_class.py", line 8, in <module>
newobject.function1(64)
TypeError: unbound method function1() must be called with newclass instance as first argument (got int instance instead)
python
中究竟绑定的方法和未绑定方法是什么答案 0 :(得分:2)
Python中正确的对象初始化是:
newobject = newclass() # Note the parens
绑定方法是一种实例方法,即。它适用于object
。未绑定方法是一个简单的函数,可以在没有对象上下文的情况下调用。有关详细讨论,请参阅this answer。
请注意,在Python 3中,未绑定方法概念已被删除。
答案 1 :(得分:1)
在您的情况下,您应首先创建newclass
的实例,然后调用function1。
class newclass:
def function1(self,var2):
self.var2=var2
print var2
self.fun_var=var2
newobject = newclass
newobject().function1(64)