python访问对象的私有属性和私有方法

python 专栏收录该内容
4 篇文章 0 订阅

我们知道在python语法中,给属性和方法添加私有是在属性或方法前面加__  然后我们就无法通过正常方式访问到属性和方法,如下图所示:

class Persson:
    def __init__(self, name):
        self.name = name
        self.__age = 18

    def __secret(self):
        print("%s 的年龄是:%s" % (self.name, self.__age))


persson= Persson("小明")
print(persson.__age)
persson.__secret()

运行肯定是会报错的

 

那么我们如何像java一样访问到对象的私有属性和方法呢,java通过反射,python却没有那么麻烦,翻看python底层实现我们发现,python底层对私有方法的处理是在私有方法前加入了_对象名,由此我们可以通过如下方式访问到私有属性和方法

class Persson:
    def __init__(self, name):
        self.name = name
        self.__age = 18

    def __secret(self):
        print("%s 的年龄是:%s" % (self.name, self.__age))


persson= Persson("小明")
print(persson._Persson__age)
persson._Persson__secret()

 

  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值