class P(object):
def __init__(self):
self.value = 0
self.x = 1000
def get(self):
print(self.value)
print(self.b)
return id(self.value)
class C(P):
def __init__(self):
super(C, self).__init__()
self.value = 44
self.b = 6
def a(self):
self.get()
print (self.x)
P().get()
#输出:
/usr/bin/python3.6 "/home/zxy/code/nnUNet-master (myself)/nnunet/run/test.py"
0
Traceback (most recent call last):
File "/home/zxy/code/nnUNet-master (myself)/nnunet/run/test.py", line 24, in P().get()
File "/home/zxy/code/nnUNet-master (myself)/nnunet/run/test.py", line 9, in get
print(self.b)
AttributeError: 'P' object has no attribute 'b'
子类C继承了父类P,但是用父类创建对象时,无法用子类C的属性
class P(object):
def __init__(self):
self.value = 0
self.x = 1000
def get(self):
print(self.value)
print(self.b)
return id(self.value)
class C(P):
def __init__(self):
super(C, self).__init__()
self.value = 44
self.b = 6
def a(self):
self.get()
print (self.x)
# P().get()
C().a()
C().get()
#输出:
/usr/bin/python3.6 "/home/zxy/code/nnUNet-master (myself)/nnunet/run/test.py"
44
6
1000
44
6
子类的属性可以被父类调用,不过必须是通过子类构造的对象的时候才可以调用和给父类赋值