【发布时间】:2014-11-06 12:15:55
【问题描述】:
有人能解释一下Python datamodel reference 中关于用户定义函数的以下部分是关于什么的吗?
当通过检索另一个用户定义的方法对象创建时 来自类或实例的方法对象,其行为与 对于函数对象,除了 new 的
__func__属性 instance 不是原始方法对象,而是它的__func__属性。
我尝试使用以下方法进行测试:
class A(object):
def foo(self):
print 'done'
bar = foo
class B(object): pass
a = A()
b = B()
b.f = a.foo
b.f.__func__ #output:- <function foo at 0x7fe55bed4230>
a.foo.__func__ #output:- <function foo at 0x7fe55bed4230>
两个语句都给了我相同的输出,但 b.f.__func__ 没有给我原来的
方法对象。我理解正确吗?
【问题讨论】:
标签: python python-2.7