我怎样才能"窃取"或将方法从一个类复制到另一个类?
示例代码:
class A(object):
def foo(self):
print "blah"
class B(object):
foo = A.foo
B().foo()
Run Code Online (Sandbox Code Playgroud)
预期产量:
"blah"
Run Code Online (Sandbox Code Playgroud)
代替:
TypeError:必须使用A实例作为第一个参数调用未绑定方法foo()(没有任何内容)
用途__func__:
>>> A.foo
<unbound method A.foo>
>>> A.foo.__func__
<function foo at 0x00BC5F70>
>>> class B(object):
... foo = A.foo.__func__
...
>>> B().foo()
"blah"
Run Code Online (Sandbox Code Playgroud)
引用文档:
实例方法对象组合了类,类实例和任何可调用对象(通常是用户定义的函数).
特殊的只读属性:__ self__是类实例对象,__ func__是函数对象; __doc__是方法的文档(与__func __.__ doc __相同); __name__是方法名称(与__func __.__ name__相同); __module__是定义方法的模块的名称,如果不可用则是None.
| 归档时间: |
|
| 查看次数: |
277 次 |
| 最近记录: |