python如何访问私有变量_如何访问私有成员

# ### 如何访问私有成员

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 不存在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值