zoukankan      html  css  js  c++  java
  • 封装

    # 类的三大特性:继承,封装,多态。

    # 封装?

    class A:

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

    obj = A('二狗')
    # 广义的封装:就是将一些内容放到一个'容器'中.
    # 狭义的封装:私有。
    # 类的结构:
    class B:
        country = 'China'  # 静态变量(属性,字段)
        __name = 'alex'  # 私有静态变量
    
        def func(self):  # 动态普通方法
            pass
    
        def __func(self):  # 私有方法
            pass
    
        def __init__(self,name,age):  # 特殊方法:双下方法
            self.name = name
            self.__age = age  # 私有对象属性
        @property  # 属性
        def f1(self):
            pass
    
        @classmethod  # 类方法
        def func2(self):
            pass
    
        @staticmethod  # 静态方法
        def func3(self):
            pass
    # 私有成员:私有变量,私有对象属性,私有方法
    # 私有成员:类外面不可以访问,派生类不可以访问,类内面可以访问
    class A:
        country = 'China'  # 静态变量(属性,字段)
        __name = 'alex'  # 私有静态变量
        def __init__(self, name, age):
            self.name = name
            self.__age = age
    
        def func(self):  # 动态普通方法
            print(self.__name)
    
        def __func(self):  # 私有方法
            pass
    
    class B(A):
        def func2(self):
            print(self.__name)
    
    obj = A('二狗', 18)
    print(obj.country) # 类外面可以访问
    print(obj.__name)  # 私有:类外面不可以访问
    
    obj.func()  # 私有:类内面可以访问
    
    o1 = B('脸哥', 25)
    o1.func2()  # 私有:派生类不可以访问
    
    obj = A('二狗', 18)
    print(A.__dict__)
    print(obj._A__name)  # 这样可以访问,但是千万不要这样访问,这个是python犯懒了,c语言中私有成员在类外面是不能访问的。

     

  • 相关阅读:
    MySQL 中的 3 种注释
    Macbook 彻彻底底的卸载MySQL
    MacBook 安装 MySQL 5.7.29(新手都看得懂的安装教程)
    Java Junit单元测试
    理解 Java 方法引用(方法引用符:“双冒号 :: ”)
    iOS应用启动时间
    iOS遍历数组的同时删除元素
    Xcode 中的断言
    Mac 下 查看 使用某端口的进程和关闭该进程的命令
    RAC 数据库的启动与关闭
  • 原文地址:https://www.cnblogs.com/wangkaiok/p/9987765.html
Copyright © 2011-2022 走看看