• python--面向对象:多态与封装


    一、多态 :python 天生支持多态
    多态指的是一类事物有多种形态 eg:文件有多种形态:文本文件,可执行文件
    鸭子类型:python中崇尚鸭子类型,不崇尚根据继承所得来的相似
    优点 : 松耦合 每个相似的类之间都没有影响
    缺点 : 太随意了,只能靠自觉
    #eg序列类型有多种形态:字符串,列表,元组,但他们直接没有直接的继承关系
    #eg:如果两个类刚好相似,并不产生父类的子类的兄弟关系,而是鸭子类型
    #eg:list tuple 这种相似,是自己写代码的时候约束的,而不是通过父类约束的
    举例
    class Tuple:
        def __len__(self):
            return 'aaa'
    class List:
        def __len__(self):
            return 'qqq'
    def len(a):
        return a.__len__()
    l=list()
    len(l)
    二、封装: 隐藏对象的属性和实现细节,仅对外提供公共访问方式。
    # 【好处】
    """
    1. 将变化隔离;
    2. 便于使用;
    3. 提高复用性;
    4. 提高安全性;
    """
    # 【封装原则】
    """
          1. 将不需要对外提供的内容都隐藏起来;
          2. 把属性都隐藏,提供公共方法对其访问。
    """
    class Person:
        __key=123    # 私有 静态属性
        def __init__(self,name,passwd):
            self.name=name
            self.__passwd=passwd    # 私用 动态属性
        def __get_passwd(self):    #私有方法
            return self.__passwd
        def login(self):
            self.__get_passwd()      #支持每部调用查看
    #私有方法不能再外部调用,但是我们也是可以加上类名就能调用了,但是不建议使用
    join=Person('join',123)
    print(join._Person__passwd)    #123

    三、小结

    # 所有的私有 都是在变量的左边加上双下划綫
        # 对象的私有属性
        # 类中的私有方法
        # 类中的静态私有属性
    # 所有的私有的 都不能在类的外部使用
  • 相关阅读:
    SPOJ AMR12B 720
    OUC_TeamTraining_#1 720
    Mac下安装必须软件
    spawn命令和expect
    python基础
    AndroidManifest.xml详解
    Ubuntu系统连接Android真机调试
    Android Studio 快捷键
    linux 解压/压缩命令
    sadasd
  • 原文地址:https://www.cnblogs.com/zzy-9318/p/8324017.html
Copyright © 2020-2023  润新知