广义上面向对象的封装:代码的保护,面向对象的思想本身是一种保护,只让自己的对象能调用自己累的方法
狭义上的封装——面向对象的三大特性之一 属性、方法都隐藏起来,不让你看见
规则:
1、所有的私有,都是在变量的左边加上双下划线
对象的私有属性
类中的私有方法
类中的静态私有属性
2、所有的私有的 都不能在类的外部使用
class Person:
__k = 123 #私有静态属性
def _init_(self,name,passwd):
self.name = name
self.__passwd = passwd #私有属性 def get_pwd(self):
print(self._dict_)
return self._passwd) #只要在类的内部使用私有属性,就会自动带上类名 def __get_pwd(self): #私有方法 给自己使用
print(self._dict_)
return self._passwd) def login(self): #调用私有方法
self.__get_pwd() alex = Person('alex','alex3714')
print(alex._Person_passwd) #只有这个方法可以调用