pytho(5)

 python对象排序代码 https://gitee.com/pythonbigdata/pythonTest01/blob/master/Test/ObjectSorting.py

python方法的使用代码 https://gitee.com/pythonbigdata/pythonTest01/blob/master/Test/Traffic.py

python异常错误信息类 https://gitee.com/pythonbigdata/pythonTest01/blob/master/Test/Error.py

python方法的基础调用类 https://gitee.com/pythonbigdata/pythonTest01/blob/master/Test/TestClass05.py

1.python封装继承多态

多态: 可对不同类的对象使用同样的操作。
封装:对外部世界隐藏对象的工作细节。 
继承:以普通的类为基础建立专门的类对象。

测试一个对象有多个引用使用getrefcount()需要导入import sys模板如果没有引用会抛出异常

2.继承:简化代码。生成子类时,先初始化父类
继承属性self.属性=当前属性
     父类.属性=当前属性
     父类._init_()方法
     super(子类,self)._init_()方法
调用父类的方法使用super关键字
方法的重写
子类不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称 方法覆盖
方法的重载
方法名相同而参数列表不同,和返回值无关
构造方法必须有返回值

多继承:

类同时继承多个父类,class C(A,B),当有AB均有相同方法,而子类又重写时,调用谁的方法,如果子类没有方法,则调用哪个父类的方法?A

class Person:
    
    def __init__(self,name=None,age=None,sex=None):         print("------person")         self.name=name         self.age=age         self.sex=sex             def __str__(self):         return "我的姓名:{0},我的年龄:{1},我的性别:{2}".format(self.name,self.age,self.sex)     class Music:         def __init__(self,piano=None):         print("-------music")         self.piano=piano         class Student(Person,Music):         def __init__(self,name=None,age=None,sex=None,score=None,piano=None):         print("------student")         #给父类传参四种方式————————方式一:         # Person.name=name         #方式二:         # Person.__init__(self,name,age,sex,score)         #方式三:         #self.age=age         #self.sex=sex         #方式四:         super(Student,self).__init__(name,age,sex)         self.score=score         self.piano=piano     def __str__(self):         return "我的姓名:{0},我的年龄:{1},我的性别:{2},我的成绩:{3},我喜欢:{4}".format(self.name,self.age,self.sex,self.score,self.piano) stu=Student("Mary",23,"",88,"钢琴") print(stu)

注意: 
1、super().__init__相对于类名.__init__,在单继承上用法基本无差  
2、但在多继承上,super保证每个父类只会被重写一次,如果使用类名调用时,就会出现多次调用  
3、多继承时,使用super方法,对父类的传参,应该是由于python中super的算法导致的原因,必须把参数全部传递,否则会报错  
4、多继承时,相对于使用类名.__init__方法,要把每个父类全部写一遍, 而使用super方法,只需写一句话便执行了全部父类的方法,这也是为何多继承需要全部传参的一个原因。

类方法:@classmethod注解就是类方法可以通过类方法调用类属性,也可以通过对象调用类属性

静态方法:@staticmethod是无参 和类.对象没有关系

单例模式提供了一个类只有一个特定类型的对象的机制

在python中,我们可以用多种方法来实现单例模式:

  - 使用模块

  - 使用__new__

  - 使用装饰器

  - 使用元类(metaclass)

下面使用__new__的方式来实现

7.异常的语法
try:
  语句
except 异常类型 as 别名:
  语句
else:
  无异常则执行
finally:
  语句
对象列表的排序方法重写gt lt方法
 

猜你喜欢

转载自www.cnblogs.com/lihangfei/p/9118787.html
今日推荐