在构建Foo类的实例之前,我想创建一个Foo类中定义的方法的实例方法对象,并将其分配给一个变量。然后我将创建一个Foo类的实例,并通过该变量针对新创建的实例执行实例方法对象。这是可行的吗?如果是这样,怎么样?谢谢。是否有可能基于关联类创建一个实例方法对象?
-1
A
回答
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
)获得的相同行为。
+1
+1实际解释它... – mgilson
+0
@larsmans - 你的回答正是我所看到的。感谢您理解我的问题,并抱歉不让我的问题更清楚。 – tamakisquare
0
你的意思是这样的:
class Foo:
def __init__(self):
self.g = self.f
def f(self):
print "foo"
foo = Foo()
foo.g()
请纠正我,如果我误解。
0
在Python中,实例方法只是方便调用并传递self
作为第一个参数的函数。你应该可以这样做:
def bar(self):
pass
class Foo(object):
pass
x = bar
f = Foo()
bar(f)
相关问题
- 1. 方法基于一个请求对象来创建一个模型实例
- 2. 是否可以创建一个可用于创建任何类的“新”实例的泛型方法或类?
- 3. 如何基于此对象数据创建实例方法?
- 4. 如何创建一个基于实例方法的值对对象进行排序的类/作用域方法?
- 5. 可能从另一个对象方法实例化对象(javascript)
- 6. 关于创建一个类的对象
- 7. 是否有方法可以方便地记住类的实例,类,对象
- 8. 如何从其基类的实例创建一个新对象?
- 9. OOP - 如果一个类创建一个类的实例,该实例是否也成为一个对象?
- 10. 创建一个同时是实例和类方法的方法
- 11. 是否有可能从JSON创建一个Parse对象
- 12. 是否有可能在类本身中创建一个实例为null?
- 13. 是否有可能通过多个对象实例同时访问一个类的静态方法?
- 14. 是否有可能在C#中创建一个没有类的对象?
- 15. JavaScript:基于现有类创建新对象(添加方法)
- 16. 在创建动态实例时的ecore中,是否可以创建基类的多个对象?
- 17. 验证对象是否有一个或多个关联对象
- 18. 是否有一个call_user_func()等同于创建一个新的类实例?
- 19. 如何基于对象名称创建javascript对象的实例
- 20. 是否有可能在pyserial中创建serial.Serial()的多个实例?
- 21. 是否有可能有一个“本地”类型实例?
- 22. 类,实例/对象方法
- 23. Node.js对象实例是否为每个用户创建一个对象?
- 24. 是否有可能在java中创建Enum类型的对象?
- 25. 是否有可能从工厂创建单例实例
- 26. ExecutorService - 在方法中创建新实例vs每个类创建一个实例
- 27. 基于现有实例创建类的新实例
- 28. 两个类创建对方的实例
- 29. 无法实例化对象:只创建第一个对象
- 30. 是否有可能使用反射修改对象实例的方法
呃?对不起,我真的很难解析你的问题。有什么方法可以用不同的方式来描述它吗?也许用一个例子来说明它? –
恭喜,你创造了新纪录! *四个* *不同*您的问题的解释导致许多答案!我计算一个classmethod,一个绑定方法别名,一个未绑定方法引用和一个独立函数。 –
@MartijnPieters - 不完全是4. larsmans和我自己发布的答案几乎完全相同(并且在大约3秒钟内发布)......说到这一点,我想我会删除我的......(so我想这只会使* 3不同的解释* ...不知道这是否使它从记录断路器,虽然;) – mgilson