python中绑定和未绑定的方法是什么

时间:2016-02-09 12:29:17

标签: python

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

中究竟绑定的方法和未绑定方法是什么

2 个答案:

答案 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)