python的封装(类)
广义的封装
侠义的封装
广义的封装比较好理解。
广义封装:实例化一个对象,给对象空间封装一些属性。在创建类后,给类的实例化一个对象,就可以理解成一个广义的封装。
侠义的封装:私有制
私有成员:私有静态字段、私有方法、私有对象属性
私有静态字段变量:
class A:
__variable = xxx
这就在A类中创建了一个静态字段变量,注意variable前是双下划线。
由上我们可以理解成在变量和方法之前加上双下划线就可以表示私有。
class B: __money = 100 class A(B): name = "feng" __age = 100 def func(self): print(self.__age) print(A.__age) print('fubc....') def func1(self): print(self.__money) print(A.__money) a1 = A() print(a1.name) print(A.name) #以下两行输入会报错 #print(a1.__age) #实例化对象不能访问私有静态字段 #print(A.__age) #类名不饿能访问私有静态字段
对于私有静态字段来说,只能在本类的内部访问,类的外部、派生类均不可访问。
私有方法:
class B: __money = 99 def __f1(self): print('B') class A(B): name = "feng" def __func(self): print('fubc....') def func1(self): # self.__func() self.__f1() a1 = A() #同样以下也会报错。 #a1.__func() #类外部不能访问 #a1.func1() #类的派生类(主要是继承方面)也不能访问。
类的封装可有数据封装,方法封装,属性封装
有下期的话讲讲,如何在内的外部访问私有方法或变量。