封装

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

# 封装?

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语言中私有成员在类外面是不能访问的。

 

 

posted @ 2018-11-20 11:11  小菜鸟111  阅读(116)  评论(0编辑  收藏  举报