python-面向对象三大特性

  • 封装:对象成员进行访问控制
    • public(公开):公共的成员
    • protected(受保护的):受保护的,只有父类和子类中可以访问 定义在变量前面加一个下划线 如:_name="zhangsan"
    • private(私有的):只有当前类和对象中使用 定义在变量前面加2个下划线 如:__name = "zhangsan" ,若要访问可以使用 _className__name访问【不建议使用】
  • 继承
    class Person:
        # 构造函数
        def __init__(self):
            print("父类构造函数")
        name = None
        age = None
        def say(self):
            print("say.....")
        def work(self):
            pass
    class Student(Person):
        # 构造函数,每次实例化先调用,构造函数名称必须为__init__, 自动调用,必须有一个参数
        # 若子类没有构造函数,会往父类寻找构造函数
        def __init__(self):
            # 调用父类构造函数 
            super(Student, self).__init__()
            print("构造函数..")
        def work(self):
            super().work()
            print("study....")
    s=Student()
    s.name="zhangsan"
    print(s.name)
    s.work()
    • 继承可以使用父类的非私有成员和方法
    • 所有类继承object 

    • 当子类中的成员和父类中的成员相同,优先使用子类中的成员

    • 子类中若想访问父类中的成员,可以使用父类.父类成员或者 super().父类成员

    • super:不是关键字,而是一个类,可以获取父类

    • 单继承

    • 多继承:MRO用于保存同一个类继承顺序,调用方法:__MRO__

  • 多态
    • 同一个对象在不同情况下的不同状态
    • 多态性:一种调用,不同的执行效果
    • 多态:同一个事务的多种形态
    • Mixin设计模式:
      • 主要采用多继承的方式对类进行扩展
  • 常用函数
    • issubclass:判断是否为子类,如:issubclass(b,a)
    • isinstance:判断是否为类的实例如:isinstance(a,A)
    • hasattr:判断是否有成员 如:hasattr(a,"name")
    • setattr:设置成员
    • getattr:得到成员
    • dir:获取对象成员列表,如 dir(A)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值