您的位置:首页 > 其它

继承关系类实例对象的非绑定关系方法调用

2015-08-20 12:49 453 查看
class A(object):

def f(self):

print 'A f'

class B(A):

def f(self):

A.f(self)

a=A()

b=B()

a.f()

b.f()

A.f(a)

B.f(b)

print '-----------'

A.f(b)

print '-----------'

B.f(a)

结果:

A f

A f

A f

A f

-----------

A f

-----------

Traceback (most recent call last):

File "k.py", line 17, in <module>

B.f(a)

TypeError: unbound method f() must be called with B instance as first argument (got A instance as first argument (got A instance instead)

结论:1. 父类非绑定方法传入子类实例对象OK。

2. 子类非绑定方法传入父类实例对象NO。

如何理解呢?子类非绑定方法中可能会操作一些只有子类中定义的属性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: