• python面向对象编程


    1.类和实例

    类是抽象的模板,而实例是根据类创建出来的具体对象

    class Student(object):

           def __init__(self,name,score):
                 self.name = name
                 self.score =score

           def print_score(self):
                 print('%s : %s' % (self.name,self.score))

    bart = Student('Bart Simpson',99)
    bart.print_score()

    2.类的内部的访问限制

    变量前加上两个下划线表示对外隐藏该字段,如果需要访问,需要编写相关的get和set方法

    以双下划线开头和结尾的变量为特殊变量,可以直接访问。

    以一个下划线开头的变量可以访问,但不推荐这样。(python没有机制阻止,一切靠自觉)

    3.多态和继承

    多态:当需要传入父类的多个子类时,只需要在定义时将父类传入,在实际调用时,子类就会调用实际的方法

    开闭原则:对扩展开放,对修改封闭

    python相对于java来说是动态语言,父类传参数不是必须的,但需要确保内部有方法可以调用

    4.获取对象信息

    type(str)来判断对象类型    isinstance(a,b)用来判断class的类型(a是否为b)   

    type可以被isinstance来替代 (总是优先使用isinstance类型)

    5.实例属性和类属性

    实例属性属于各个实例所有,互不干扰;

    类属性属于类所有,所有实例共享一个属性;

    不要对实例属性和类属性使用相同的名字。

    6.使用@property

    使用property装饰器目的是限制类中属性的取值或是否可读,即对参数进行检查

    7.多继承模式

    不同于java中的单继承,多实现的方式,pthon中使用的为多继承方式。以最顶层父类为主,其他类用Mixin修饰。

    class Dog(Mammal, RunnableMixIn, CarnivorousMixIn):

    8.定制类

    __str__() /__repr__():返回字符串打印。区别:repr用来程序调试的

    __iter__()/__next__():用于可迭代对象进行循环

    __getitem__():取可迭代对象中的元素

    __getattr__():动态修改属性的取值

    __call__():对实例进行调用    可以把对象看作函数,把函数看作对象

    9.枚举类

    python提供Enum('')来对多个元素进行枚举

    10.动态创建类

    python是动态语言,函数和类的定义是在运行时创建的

    可以通过type()方法进行创建,还可以通过元类方式创建

  • 相关阅读:
    使用react+html2canvas+jspdf实现生成pdf文件
    命名函数表达式
    java-信息安全(二十)国密算法 SM1,SM2,SM3,SM4
    003-docker-单宿主机下的网络模式
    【性能扫盲】性能测试面试题
    LoadRunner函数
    爬取干货集中营的美女图片
    ELK 性能优化实践 ---总结篇
    ELK 性能优化实践
    告警图片-搞笑的
  • 原文地址:https://www.cnblogs.com/bkyf/p/10113090.html
Copyright © 2020-2023  润新知