python进阶:封装
封装:指隐藏对象中一些不希望被外部所访问到的属性或者方法
xxx,普通属性/方法:类中定义,可以在任意地方使用
_xxx,单下划线开头:声明私有属性/方法,如果定义在类中,外部可以使用,子类可以继承;但是从另一个py文件导入时,无法导入。一般是为了避免与python关键字重复而采用。
__xxx,双下划线开头,隐藏属性,如果定义在类中,无法在外部直接访问,子类不会集成,访问只能通过间接的方式;从另一个py文件导入时,也无法导入。这种命名一般是python中的魔术方法或属性,有特殊含义或功能,不要轻易自己定义
无封装:
class Person:
name = "bingbing" # 类属性
pe=Person()
print(pe.name)
Person.name="ziyi"
print(pe.name)
隐藏属性(私有权限),只允许在类内部使用,无法通过对象访问的属性
实质上是讲隐藏属性名修改为了"_类名__属性名"
class PersonTwo:
name = "James" # 类属性
_sex="man" # 私有属性
__age=28 # 隐藏属性
def __play(self):
print("隐藏方法")
pe=PersonTwo()
print(pe.name)
# print(pe.__age) # 不可访问
print(pe._PersonTwo__age) # 实质
# 私有属性/方法
浙公网安备 33010602011771号