一、利用场景和定义形式
利用场景
- 在理论开发中,对象的某些属性或办法可能只心愿在对象的外部被应用,而不心愿在内部被拜访到
- 公有属性就是对象不心愿公开的属性
- 公有办法就是对象不心愿公开的办法
定义形式:
在定义属性或形式时,在属性名或者办法名前减少两个下划线,定义的就是公有属性或发办法。
如:个别女人的年龄是属于比拟隐衷的代码:
class Women():
def __init__(self, name):
self.name = name
self.age = 28
def secret(self):
print("%s 的年龄是 %d" % (self.name, self.age))
xiaoxia = Women("小夏")
print(xiaoxia.age)
xiaoxia.secret()
执行后果:
1. 上面利用公有属性来批改代码:
执行后果:报错——通知咱们女人这个对象没有__age 属性
总结:公有属性在外界是不可能被间接拜访的
2. 把 print(xiaoxia.__age)这段代码正文掉,来看看带有公有公有属性的办法能不能执行
答案:能够执行
总结:在对象的办法外部,是能够拜访对象的公有属性的
3. 看看公有办法能不能执行,批改代码:
总结:公有办法在外界也是不可能被间接拜访的
二、【科普】伪公有属性和伪公有办法
提醒:在日常开发中,不要应用这种形式,拜访对象的公有属性或公有办法。
Python 中,并没真正意义的公有。
- 在给属性、办法命名时,理论是对名称做了一些非凡解决,使得外界无法访问到
- 解决形式:在名称后面加上 _类名 =》_类名_名称
*把公有属性和公有办法革新后让其在外界也能被拜访到:
革新之前:*
革新之后:
在日常开发中并不要去拜访对象的公有属性或者公有办法,因为公有属性和公有办法是对象的隐衷,既然是隐衷在外界就不要轻易去拜访。
更多对于 Python 基础知识和进阶常识都能够去Python 自学网(www.wakey.com.cn/)学习,还有 Python 学习路线解说。