-1

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

4

3 回答 3

3

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

>>> 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.

于 2012-09-11T19:52:56.297 回答
0

你的意思是这样的:

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

    def f(self):
        print "foo"

foo = Foo()
foo.g()

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

于 2012-09-11T19:52:20.967 回答
0

In Python, instance methods are just functions that are convenient to call and pass self as the first parameter. You should be able to do something like this:

def bar(self):
    pass

class Foo(object):
   pass

x = bar
f = Foo()
bar(f)
于 2012-09-11T19:53:07.417 回答