当前位置: 首页 > backend >正文

类-python

super

super()是继承父类,那么super().__init__()代表不用实例化就可以调用父类的__init__()方法来对子类进行初始化,那么这就相当于我们实例化了一个对象,那当然需要给super().__init__()指定它的参数了

super() 里面可以不加参数,也可以加2个参数(旧写法,放弃)。如果加2个参数: 第一个是子类,第二个参数是该子类实例的对象

class Rectangle:def __init__(self, length, width):self.length = lengthself.width = widthdef area(self):return self.length * self.widthclass Square(Rectangle):def __init__(self, length):super(Square, self).__init__(length, length)

super().__init__(*args, **kwargs)

使用*args**kwargs可以让子类接受任意数量的位置参数和关键字参数,并将它们传递给父类。

class Car(object):def __init__(self, owner, year, model):self.owner = ownerself.year = yearself.model = model def get_info(self):"""打印车辆信息"""print(f'The owner of the car is {self.owner}\n' \f'The model of the car is {self.year}-{self.model}')
class ElectricalCar(Car):def __init__(self, battery, *args):super().__init__(*args)  # 将剩下的参数打包送给superself.battery = battery  # 从参数列表中拿出battery初始化子类属性def get_power(self):"""打印电池信息"""print(f'The battery of this car is {self.battery}')
tesla = ElectricalCar('10000kwh','Jarry', 2021, 'Model S')
tesla.get_info()
tesla.get_power()

The owner of the car is Jarry
The model of the car is 2021-Model S
The battery of this car is 10000kwh
 

单个继承

class Parent:def __init__(self, name):self.name = nameclass Child(Parent):def __init__(self, name, age):super().__init__(name)  # Call parent's constructor firstself.age = ageparent = Parent("Alice")
child = Child("Bob", 12)print("Parent:", parent.name)
print("Child:", child.name, child.age)
Parent: Alice
Child: Bob 12

 Multiple Inheritance

class Base1:def __init__(self, x):self.x = xclass Base2:def __init__(self, y):self.y = yclass Derived(Base1, Base2):def __init__(self, x, y, z):super().__init__(x)  # Call first base class constructor# Call second base class constructor explicitlyBase2.__init__(self, y)self.z = zderived = Derived(1, 2, 3)print("Derived:", derived.x, derived.y, derived.z)

Output

Derived: 1 2 3

Multi-Level Inheritance

class Grandparent:def __init__(self, name):self.name = nameclass Parent(Grandparent):def __init__(self, name, age):super().__init__(name)  # Call grandparent's constructorself.age = ageclass Child(Parent):def __init__(self, name, age, hobby):super().__init__(name, age)  # Call parent's constructorself.hobby = hobbychild = Child("Charlie", 8, "reading")print("Child:", child.name, child.age, child.hobby)

Output

Child: Charlie 8 reading

http://www.xdnf.cn/news/2582.html

相关文章:

  • AI中Token的理解与使用总结
  • seededit: Align image re-generation to image editing
  • 【中级软件设计师】编译和解释程序的翻译阶段、符号表 (附软考真题)
  • RC吸收电路参数设置实战
  • DJL FastText (FtModel) 使用指南
  • 如何编写企业的数据标准管理办法
  • 人大金仓sys_rman备份脚本
  • 【SAP-CO】标准价(S价)和移动平均价(V价)
  • 合理布局结构体,精打细算 cacheline
  • 设计并实现一个基于 Java + Spring Boot + MySQL 的通用多租户权限系统
  • 计算机网络-运输层(1)
  • 关闭浏览器的拼写检查
  • 低调使用,“黑神话”正确打开方式
  • Aloudata Agent 36 问,深度解惑!
  • 磁盘清理git gc
  • 服务器异地备份,服务器异地备份有哪些方法?
  • 记录学习记录学习《手动学习深度学习》这本书的笔记(九)
  • MVCC(多版本并发控制)
  • docker部署Mysql8一直密码错误记录
  • 实时操作系统在金融科技中的应用及未来展望
  • Coding Practice,48天强训(25)
  • [Jupyter Notebook]:Jupyter Notebook 安装教程(代码编辑器)
  • 【C++底层】底层的编译逻辑和过程
  • OnlyOffice Document Server 开发版:连接器使用-ARM和x86双模式安装指南
  • C盘清理实用技巧整理
  • 卡洛诗西餐厅,以“中式西餐”为核心战略
  • 如何理解promise 续一
  • 准确--如何在 Windows 上安装并管理多个 Python 环境
  • 【SpringMVC文件上传终极指南:从基础配置到云存储集成】
  • 在亚马逊云服务器上部署WordPress服务