'''
1.封装:类就是个麻袋,
2.定义私有的,只在类内部使用,外部无法访问(_,__)
3.明确区分内外,内部的实现逻辑,外部无法知晓,并且为封装到内部的逻辑提供一个访问接口给
外部使用。
'''
class People:
# __ :双下划线,这就是在类中封装的语法
__region = "武汉" # _ People__region 实际发生了变形
def __init__(self, name, age):
self.__name = name
self.age = age
def print_info(self):
print('姓名:%s,年龄:%s,地区:%s'%(self.__name,self.age,self.__region))
obj = People('金鞍少年', 18) # 实例化对象并传入参数
print(obj.age) # 结果-- 18
obj.print_info() # 结果-- 姓名:金鞍少年,年龄:18,地区:武汉
print(obj.__region) # 报错:AttributeError: 'People' object has no attribute '__region',证明__region被私有化封装了
print(People.__dict__) # 查看类的属性和方法
# {'__module__': '__main__', '_People__region': '武汉', '__init__': , 'print_info': , '_People__FindName': , '__dict__': , '__weakref__': , '__doc__': None}
# 通过分析知道,在类中__region,是以_People__region存储的
print(obj._People__region) # 结果 :武汉