1.当彼此继承的三个类中都有init()时,init()中定义了不同的属性,
创建一个子类对象,用子类对象调用父类及父类的父类中的属性时,会报错。代码如下:
class A(object):
def __init__(self):
self.a1 = 1
class B(A):
def __init__(self):
self.b1 = 2
class C(B):
def __init__(self):
self.c1 = 1
c = C()
print(c.a1)
print(c.b1)
结果会报错,结果如下:
Traceback (most recent call last):
File "D:\AI\softwarepackdge\pycharm\coding\python高级进阶\day02\01-继承拓展.py", line 14, in <module>
print(c.a1)
^^^^
AttributeError: 'C' object has no attribute 'a1'. Did you mean: 'c1'?
此时如果想要调用成功,必须让子类分别调用父类的init方法
使用super().__init__()
class A(object):
def __init__(self):
self.a1 = 1
class B(A):
def __init__(self):
super().__init__()
self.b1 = 2
class C(B):
def __init__(self):
super().__init__()
self.c1 = 1
c = C()
print(c.a1)
print(c.b1)
结果如下:
1
2
- 通过以下方式可以快速读取文件中的每一行数据:
file = open('a.txt', 'r')
for line in file:
print(line.strip())
file.close()