首页 > 编程语言 >python超类

python超类

时间:2023-06-07 10:55:11浏览次数:47  
标签:__ name python self 超类 super class

1.超类

什么是超类:super方法调用的一系列类

什么时候用到超类?

如果子类需要复用父类的代码(属性,方法)时,需要通过超类实现

class A:
    class_name="A" #类的属性

    def __init__(self,name,age):
        self.name=name #实例属性
        self.age=age #实例属性

    def show_me(self):
        print(f"hello,我的name是{self.name},我的年龄是{self.age}")

a=A("王舞",18)
a.show_me()
class B(A): #继承实现扩展
    class_name = "B"
    def __init__(self,country,*args,**kwargs):
        self.country=country
        super().__init__(*args, **kwargs)  # 通过超类,实现对父类代码的复用

super是不是代表父类?

super()是一个内置函数,返回了超类
沿着继承关系,从祖上一系列类中,寻找成员
super不是代表父类

super能不能跳过父类?

super 可以接受参数:
从哪个类的祖先中查找成员

传递实例对象

class A:
    class_name="A" #类的属性

    def __init__(self,name,age):
        self.name=name #实例属性
        self.age=age #实例属性

    def show_me(self):
        print(f"hello,我的name是{self.name},我的年龄是{self.age}")

a=A("王舞",18)
a.show_me()
class B(A): #继承实现扩展
    class_name = "B"
    def __init__(self,country,*args,**kwargs):
        self.country=country
        super().__init__(*args, **kwargs)  # 通过超类,实现对父类代码的复用

class C(B):
    class_name="C"

    def show_class_name(self):
        print("自己的class_name属性",self.class_name)
        print("继承来的class_name属性",super().class_name) #超类的class_name
        print("跳过父类后的class_name属性",super(B,self).class_name)
        super(B,self).show_me()

b=B(country='china',name="张三",age=19)
b.show_me()

c=C(country='china',name="李四",age=20)
c.show_class_name()

如何知道类和类的继承关系:print(类名.__mro__) 

print(C.__mro__) 
#(<class '__main__.C'>, <class '__main__.B'>, <class '__main__.A'>, <class 'object'>)

 

标签:__,name,python,self,超类,super,class
From: https://www.cnblogs.com/lgs-tech/p/17462708.html

相关文章

  • python面向对象
    1.类1.1引入类面向对象:所谓面向对象,就是在编程的时候尽可能的去模拟真实的现实世界,按照现实世界中的逻辑去处理问题,分析问题中参与其中的有哪些实体,这些实体应该有什么属性和方法。我们如何通过调用这些实体中的属性和方法去解决问题类:用来描述具有相同的属性和方法的对象的集......
  • 设置python的启动文件
    设置启动文件PYTHONSTARTUP类似于profile这个文件在交互会话期是只读的,当Python从脚本中解读文件或以终端/dev/tty做为外部命令源时则不会如此,它与解释器中不受限制的使用。你也可以在这个文件中改变sys.psl和sys.ps2指令。如......
  • python-itertools
    python-itertools目录python-itertools概要无限迭代器itertools.countitertools.cycleitertools.repeat有限迭代器itertools.accumulateitertools.chainchain.from_iterableitertools.compressitertools.dropwhileitertools.filterfalseitertools.groupbyitertools.isliceitertoo......
  • Python写文件时加锁,避免写入过程中被读取
    问题:Linux上有个Python2脚本每天定时生成一些数据,并覆盖写入文件A,文件内容是每行一个Json字符串。有一个乙方的采集器程序(类似filebeat)需要读取文件A,但发现读取的数据有截断,导致解析失败。怀疑是因为采集器读取文件A的时候,文件A写入还未结束。解决:由于采集器程序是乙方自研的,属......
  • 【python基础】if语句-处理列表
    通过结合使用if语句和列表,可以完成一些程序上的需求,比如,对列表中特定的值做特殊处理1.测试特殊值比如我们有一个学员名单,其中'刘柏宏'入学比较晚,需要我们重点关注,编写程序如下所示:2.确定列表不是空的到目前为止,对于处理的每个列表都做了一个简单的假设,即假设它们都至少包含一......
  • Python apend & extend 使用说明
    列表操作append()函数a.append(b):是将b原封不动的追加到a的末尾上,会改变a的值,其中,b可为列表、元组、字符串、一串数/字符/字符串append列表a=[1,2,3]b=['a','b']a.append(b)print(a)#[1,2,3,['a','b']]append元组a=[1,2,3]b=('a','b......
  • 【python基础】if语句
    if语句是条件控制语句,在python编程中比不可少,下面是其学习目录:if语句-条件测试if语句-语法格式if语句-处理列表......
  • Python中TensorFlow的长短期记忆神经网络(LSTM)、指数移动平均法预测股票市场和可视化
    原文链接:http://tecdat.cn/?p=23689最近我们被客户要求撰写关于LSTM的研究报告,包括一些图形和统计输出。本文探索Python中的长短期记忆(LSTM)网络,以及如何使用它们来进行股市预测 ( 点击文末“阅读原文”获取完整代码数据******** )。在本文中,你将看到如何使用一个被称为长短时......
  • Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|附代码
    图形和统计输出。在此数据集中,我们必须预测信贷的违约支付,并找出哪些变量是违约支付的最强预测因子?以及不同人口统计学变量的类别,拖欠还款的概率如何变化有25个变量:ID: 每个客户的IDLIMIT_BAL: 金额SEX: 性别(1=男,2=女)4.教育程度:(1=研究生,2=本科,3=高中,4=其他,5=未知)5.婚......
  • Python | VSCode的Python编程环境搭建
    1、简介VScode是一款轻量化的代码编辑器,也是目前极为流行的适配性极强的写代码的工具,不仅仅可以用于C/C++代码项目的编写,还能够用于Python、java等其他语言。2、内容a、先下载安装Python的解释器b、安装VSCodec、安装Python相关的插件d、即可运行编译Python代码附:完整教程步骤......