#继承 子类继承父类,子类可以继承一个父类还有父类的妻子小妾们 ,子类可以使用父类的属性和方法 #父类a class a(): def __init__(self,name=None,age=None): self.name=name self.age=age def default(self): print("调用父类a方法default",self.name,self.age) #父类c class c(): def default(self): print("调用小妾方法") #子类b 可以有多个子类继承一个父类 class b(a,c): #如果调用的父类参数方法名一样会按照顺序从前往后调用(爹最大) __phone=12345678999 date="this is date" numbernoe = None def __init__(self,me=None,name=None,age=None):#初始化方法_init_ self.me=me#给属性复值 #(1)给父类复值 #self.name=name #self.age=age # (2)给父类属性复值 #a.name=name #a.age=age #(3)给父类属性复值 a.__init__(self,name,age) #(4)给父类方法复值 #super(b,self).__init__(name,age) # 单例模式 (只有一个实例) # @classmethod # def __new__(cls, *args, **kwargs):#构造方法实例化对象 # if cls.numbernoe==None: # cls.numbernoe=object.__new__(cls) # return cls.numbernoe # else: # return cls.numbernoe # 测试打印父类属性 def prints(self): print("打印:",self.me,self.name,self.age,self.__phone,"\t",end="") #按照顺序调用父类a的方法 super().default() def default(self): print("这是子类重写父类方法") #普通方法 self调用实例属性 def Methods(self,name): print(self.date,name) #类方法 也可通过类名调用 cls访问类属性 @classmethod def classs(cls,name): print(cls.date,name) #静态方法 也可通过类名调用 不可以访问,通过传值的方式 @staticmethod def statics(name): print(name) #排序规则 或用__gt__ def __lt__(self,other): #gbk 按照拼音首字母排序 #return self.name.encode("GBK") < other.name.encode("GBK") return self.age <other.age abc=b("ss","zhazi",68) ccc=b("aa","dui",58) ccc.prints()#子类打印 按顺序调用最开始的父类方法 ccc.default()#子类重写父类方法 print("查看对象有几个引用",sys.getrefcount(ccc)) print("擦看引用是否相同肯定相同啊",id(abc)==id(ccc)) 打印结果: 打印: aa dui 58 12345678999 调用父类a方法default dui 58 这是子类重写父类方法 查看对象有几个引用 2 擦看引用是否相同肯定相同啊 False(去掉注释为True) #方法的区别 cas=b() cas.date="this is new" cas.Methods("普通方法") cas.classs("类方法") cas.statics("静态方法") 打印: this is new 普通方法 this is date 类方法 静态方法 #方法排序 关闭单例 创建好多实例 lists=[b("傻子","男",58),b("二傻子","女",38),b("大傻子","男",88)] lists.sort() for i in lists: print(i.age) 打印: 38 58 88 #异常处理 详情翻看python异常大全 def zrrors(): try: 1/0 except ZeroDivisionError as ss: #as 给实体类取别名 print("除数不能为0") raise Exception(ss) # raise引发异常 except Exception as ss: print("最大的异常处理Exception",ss) else: print("没有异常执行") finally: print("执行完毕必须执行") zrrors()
python第5节课 继承 异常 方法
最新推荐文章于 2024-07-17 10:08:37 发布