前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 私有属性和私有方法

Python 私有属性和私有方法

作者头像
Devops海洋的渔夫
发布2019-05-31 10:54:11
1.3K0
发布2019-05-31 10:54:11
举报
文章被收录于专栏:Devops专栏Devops专栏

01. 应用场景及定义方式

应用场景

  • 在实际开发中,对象某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到
  • 私有属性 就是 对象 不希望公开的 属性
  • 私有方法 就是 对象 不希望公开的 方法

定义方式

  • 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的就是 私有 属性或方法 __secret(self)
代码语言:javascript
复制
class DeadFatBoy:

    def __secret(self):
        print("这是一个不能说的秘密")

    def printMySecret(self):
        self.__secret()

if __name__ == '__main__':
    libai = DeadFatBoy("李白","75")
    libai.printMySecret()

执行如下:

代码语言:javascript
复制
G:\Python27\python.exe F:/pythonProject/CigarettesSystem/DeadFatBoy.py
这是一个不能说的秘密

其中__secret这个私有方法只能在类中调用,所以外部对象实例想要获取私有方法或者私有属性,那么就需要定义一个公有的方法来传递数值。

02. 伪私有属性和私有方法(科普)

Python 中,并没有 真正意义私有

  • 在给 属性方法 命名时,实际是对 名称 做了一些特殊处理,使得外界无法访问到
  • 处理方式:在 名称 前面加上 _类名 => _类名__名称
代码语言:javascript
复制
# 私有属性,外部不能直接访问到
print(xiaofang._Women__age)

# 私有方法,外部不能直接调用
xiaofang._Women__secret()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.12.16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01. 应用场景及定义方式
  • 02. 伪私有属性和私有方法(科普)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档