工作遇到问题总结-继承篇

文章讲述了在Python中,当多个继承层次的类中init方法定义不同属性时,如何正确调用父类的init方法以避免属性错误。同时介绍了如何使用`super().__init__()`解决初始化问题。此外,还提到了如何使用for循环逐行读取文件的内容。
摘要由CSDN通过智能技术生成

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
  1. 通过以下方式可以快速读取文件中的每一行数据:
file = open('a.txt', 'r')
for line in file:
    print(line.strip())
file.close()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值