概述
# ### 如何访问私有成员
class Plane():
# 公有属性
captain = "马军强"
# 私有属性
__air_sister = "20个"
# 公有绑定方法
def fly(self):
print("飞机会飞")
# 公有普通方法
def fly2():
print("飞机会飞2")
# 私有的绑定方法
def __oil_info(self):
print("飞机百公里油耗是100升")
# 私有的普通方法
def __oil_info2():
print("飞机百公里油耗是100升")
# 公有的绑定方法
def pub_info(self):
print(self.__air_sister)
self.__oil_info()
# 公有的普通方法
def pub_info2():
print(Plane.__air_sister)
Plane.__oil_info2()
# (1)如何访问类的私有成员?
'''
利用公有方法调用类内的私有成员
私有成员在本类之内可以随便调用,在本类之外不能调用
'''
# 实例化对象 方法一
obj = Plane()
obj.pub_info()
# 也可以使用类来调用 方法二
Plane.pub_info2()
# (2)如果就想直接在类外调用私有成员,有办法么?
'''
私有成员的改名策略:
_类名 + 私有成员 (没有真正的私有化,类外可以通过改名策略仍然调取.)
'''
print("<===>")
print(obj._Plane__air_sister)
Plane._Plane__oil_info2()
# ### 如何删除成员
# (1)实例化的对象删除公有成员属性和方法
obj = Plane()
print(obj.__dict__)
print(obj.captain)
'''
captain 成员属性归属于class Plane的,不是obj的
obj可以有使用权,没有所有权(不能够修改或者删除类内的属性)
如果对象有该属性方法,先优先调用该对象里面的成员,
如果没有,在调用类中的成员属性和方法
如果都没有,直接报错.
'''
# 删除对象的属性
obj.captain = "熊卫华"
print(obj.__dict__)
print(obj.captain)
del obj.captain
print(obj.captain) # obj自己的captain 被删除了
# 删除对象的方法
print("<======>")
obj.fly111222 = lambda : print("我的飞机可以潜入海底")
obj.fly111222()
print(obj.__dict__)
# del obj.fly
# print(obj.__dict__)
# (2)定义的类删除公有成员属性和方法
'''
对象可以调用类中得公有成员属性方法
类不能调用对象的相关成员属性和方法
方向不可逆.
一个类可以产生多个对象,多个对象彼此之间,数据独立
'''
# 删除类的成员属性
# del Plane.captain
# print(Plane.captain)
# print(obj.captain)
# Plane.fly111222() error 类不能调用对象的方法
# 删除类的成员方法
# del Plane.pub_info
# Plane.pub_info() error 不存在
最后
以上就是平淡乌龟为你收集整理的python如何访问私有变量_如何访问私有成员的全部内容,希望文章能够帮你解决python如何访问私有变量_如何访问私有成员所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复