代码如下:
class A():
def aa():
self.m = True
这个是一个A类,我想创建一个B类,来调用A类下的self.m这个变量 要如何实现?
我天真的想法是这样的,但是不行
class B(A):
if A().aa().m:
...
else:
...
这样的方式来调用 但是不行
代码如下:
class A():
def aa():
self.m = True
这个是一个A类,我想创建一个B类,来调用A类下的self.m这个变量 要如何实现?
我天真的想法是这样的,但是不行
class B(A):
if A().aa().m:
...
else:
...
这样的方式来调用 但是不行
既然继承了A,那“m”属性自然可以直接访问了。
class A(object):
def __init__(self):
self.m = False
def aa(self):
self.m = True
class B(A):
def __init__(self):
super(B, self).__init__()
def bb(self):
print(self.m)
b = B()
b.bb()
如果是想真正的调用 A
实例的 m
的话:
class B:
def __init__(self, a):
self.a = a # a 是 A 的实例
def func(self):
self.a.aa()
if self.a.m:
...
super
调用的其实是 B
实例的 m
属性:
class A:
def aa(self):
print("self is {0}".format(self))
self.m = True
class B(A):
def func(self):
super().aa()
print(self.m)
b = B()
b.func()
$ python3 test.py
self is <__main__.B object at 0x10f4f4438>
True
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
调用父类的方法很简单,在字类中super(子类, self).方法名()