是否可以基于关联类创建实例方法对象



在构造Foo类的实例之前,我想创建Foo类中定义的方法的实例方法对象,并将其分配给一个变量。然后,我将创建Foo类的实例,并通过变量对新创建的实例执行实例方法对象。这可行吗?如果是,如何?谢谢

我希望我能正确理解你想要这样的东西:

>>> class Foo(object):
...     def __init__(self, msg):
...         self.msg = msg
...     def speak(self):
...         print(self.msg)
...      
>>> tell_me = Foo.speak
>>> tell_me(Foo("hello!"))
hello!

是的,这是可能的。Foo.speak是一个未绑定的方法,它是一个可调用的(函数),可以将实例作为其第一个参数传递,以获得与Foo("hello").speak等绑定方法相同的行为。

你的意思是这样的吗:

class Foo:
    def __init__(self):
        self.g = self.f
    def f(self):
        print "foo"
foo = Foo()
foo.g()

如果我有误解,请纠正我。

在Python中,实例方法只是便于调用并将self作为第一个参数传递的函数。你应该能够做这样的事情:

def bar(self):
    pass
class Foo(object):
   pass
x = bar
f = Foo()
bar(f)

最新更新