python3面向对象(3)私有属性和方法以及访问私有属性和方法的方式

本文详细介绍了Python中如何使用私有属性和方法,并提供了两种访问私有成员的有效方式。首先,通过在类内部定义普通方法来间接访问私有成员;其次,利用名称重整规则,通过_类名__私有成员的形式直接访问。文章还提供了具体的代码示例,帮助读者更好地理解和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python3中的私有属性和方法是以__两个下划线开头的:

class Woman(object):        #定义一个woman类      
    def __init__(self,name):
        self.name = name    #公有属性
        self.__age = 22   #私有属性

    def __money(self):      #私有方法
        print("哈哈哈,我有很多存款")

obj1 = Woman("红红")
obj1.name          #可以直接访问
print(obj1.__age)  #不可以直接访问
obj1.__money    #不可以直接访问

 第一种访问:访问私有属性和方法的方式(在类内,普通方法可以访问私有属性和方法,然后再调用普通方法来访问私有的):

class Woman(object):
    def __init__(self,name):
        self.name = name
        self.__age = 22

    def __money(self):
        print("哈哈哈,我有很多存款")

    def func_age(self):    #定义一个普通方法来访问 私有属性
        print("访问到了你的年龄:%s" % self.__age)

    def func_money(self):   #定义一个普通方法来访问 私有方法
        self.__money()

obj1 = Woman("红红")

obj1.func_age()
obj1.func_money()

 第二种访问:访问私有属性和方法的方式(通过_类名__私有(属性或方法))

class Woman(object):
    def __init__(self,name):
        self.name = name
        self.__age = 22

    def __money(self):
        print("哈哈哈,我有很多存款")



obj1 = Woman("红红")
print(obj1._Woman__age)   #通过_Woman__age
obj1._Woman__money()   #通过_Woman__money()

 

转载于:https://www.cnblogs.com/yan-peng/p/9963169.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值