python类继承

python类继承一 摘要继承子承父业 父亲有的 孩子都有继承的时候 出现孩子和父亲都有的属性或方法时 会优先自身类找二

大家好,欢迎来到IT知识分享网。

一.摘要

继承 子承父业,父亲有的,孩子都有 继承的时候,出现孩子和父亲都有的属性或方法时,会优先自身类找

二.类继承的基本使用

代码如下:

class Father: #所有的类,默认是继承了object #姓氏 xs="李" name="李好" money="999" def hobby(self): print(self.name+"喜欢打篮球") class Son(Father): #儿子继承父类 def __init__(self,name): self.name=name s1=Son("李子") #类传参是通过init方法去接收 print("姓氏:{},名字:{},存款:{}".format(s1.xs,s1.name,s1.money)) s1.hobby() s2=Son("李紫") print("姓氏:{},名字:{},存款:{}".format(s2.xs,s2.name,s2.money)) s2.hobby()

运行如下:

python类继承

三.__base__

代码如下:

class Father(object): #所有的类,默认是继承了object xs="李" name="李好" money="999" def hobby(self): print(self.name+"喜欢打篮球") class Son(Father): #儿子继承父类 def __init__(self,name): self.name=name print(Son.__base__)#<class '__main__.Father'> 查看直接父类 print(Father.__bases__)

运行如下:

python类继承

四.单继承

代码如下:

class Father(object): #所有的类,默认是继承了object #姓氏 xs="李" name="李好" money="999" def hobby(self): print(self.name+"喜欢打篮球") class Son(Father): #儿子继承父类 def __init__(self,name): self.name=name def hobby(self): #方法重写 print(self.name+"喜欢打游戏") Father.hobby(self) #通过类名调用父类的方法 super().hobby() #直接父类方法 s1=Son("李子") #类传参是通过init方法去接收 s1.hobby()

运行如下:

python类继承

举例:

代码如下:

class Yeye: def info(self): #info是个自定义的方法名 print("爷爷") class Father(Yeye): def info(self): #info是个自定义的方法名 print("父亲") class Me(Father): def info(self): print("自己") super().info() #上一层类方法,最近的类中的方法 Yeye().info() #指定类 方法1 Yeye.info(self) #方法2 mm=Me() mm.info()

运行如下:

python类继承

五.多继承

代码如下:

class Father: def info(self): print("父亲") class Mother: def info(self): print("母亲") class Me(Father,Mother): #super谁在前面先继承谁 def info(self): print("自己") super().info() #super只会继承一个 mm=Me() mm.info() #查看继承顺序 print(Me.mro()) print(Me.__mro__)

运行如下:

python类继承

六.new方法和init方法的执行过程

代码如下:

class Base(object): def __new__(cls, *args, kwargs): print("new方法") return object.__new__(cls) #创建一个地址 def __init__(self): print("初始化属性方法") b1=Base() print(id(b1)) b2=Base() print(id(b2))

运行如下:

python类继承

七.单例模式

买一台手机,是一台新的,就是第一次实例化

发现手机有问题,要求换货,商家修理发回的还是原来那台有问题的手机,第二次实例化

又发现问题,又返回商家,只是修理还是返回原来的手机,第三次实例化

。。。不管实例化多少次都不会给你换新的

代码如下:

class A: _instance = 0 # 类属性 def __new__(cls,*args, kwargs): if cls._instance == 0: cls._instance = object.__new__(cls)#只要这个方法不执行,那就不会生产新的 return cls._instance else: return cls._instance print("实例化A类之前:",A._instance) a1=A() print("实例化一次后:",A._instance) a2=A() print("实例化二次后:",A._instance)

运行如下:

python类继承

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/159974.html

(0)
上一篇 2025-01-14 20:33
下一篇 2025-01-14 21:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信