Python中要想定义的方法或者变量只能在类内部使用不被外部使用,可以在方法和变量前面加两个下划线,让其变为私有方法或私有变量。类外部可以通过 ”_类名__私有属性(方法)名“ 访问私有属性(方法)。

class Person:__work = 'teacher'def __init__(self,name,age):self.name = nameself.__age = agedef run(self):print(self.__age,self.__work)def __eat(self):print('1111')

__work是私有类变量,类外是无法访问的

if __name__ == '__main__':
print(Person.__work)
Traceback (most recent call last):File "C:/Users/wangli/PycharmProjects/Test/test/test.py", line 20, in <module>print(Person.__work)
AttributeError: type object 'Person' has no attribute '__work'

__work是私有类变量,类外类实例对象是无法访问的

if __name__ == '__main__':test1 = Person('王大力','22')
print(test1.__work)
Traceback (most recent call last):File "C:/Users/wangli/PycharmProjects/Test/test/test.py", line 21, in <module>print(test1.__work)
AttributeError: 'Person' object has no attribute '__work'

__age是私有实例变量,类外类实例对象是无法访问的

if __name__ == '__main__':test1 = Person('王大力','22')
print(test1.__age)
Traceback (most recent call last):File "C:/Users/wangli/PycharmProjects/Test/test/test.py", line 21, in <module>print(test1.__age)
AttributeError: 'Person' object has no attribute '__age'

__work是私有类变量,__age是私有实例变量,类内是可以访问的

if __name__ == '__main__':test1 = Person('王大力','22')
test1.run()
22 teacher
Process finished with exit code 0

__eat()是私有方法,类外是无法访问的

if __name__ == '__main__':test1 = Person('王大力','22')
print(test1.__eat())
Traceback (most recent call last):File "C:/Users/wangli/PycharmProjects/Test/test/test.py", line 21, in <module>print(test1.__eat())
AttributeError: 'Person' object has no attribute '__eat'

__work是私有类变量,__age是私有实例变量,__eat()是私有方法,类外部可以通过 ”_Person___私有属性(方法)名“ 访问私有属性(方法)

if __name__ == '__main__':print(Person._Person__work)test1 = Person('王大力','22')print(test1._Person__work)print(test1._Person__age)
test1._Person__eat()
teacher
teacher
22
1111
Process finished with exit code 0

Python中私有变量和私有方法芳相关推荐

  1. python定义私有变量的方法_Python类中的 私有变量和私有方法

    默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量. 在python中定义私有变量只需要在变 ...

  2. python定义私有变量的方法_Python面向对象程序设计之私有变量,私有方法原理与用法分析...

    本文实例讲述了Python面向对象程序设计之私有变量,私有方法原理与用法.分享给大家供大家参考,具体如下: 私有变量,私有方法:python的私有化是为了规划私有属性,避免非相关的访问[假如!我有老婆 ...

  3. 19. Python 类的重写   类的私有变量和私有方法

    1.类的重写 例子: class parent(object):name = 'parent'age = 100def __init__(self):print('my name is parent' ...

  4. python:私有变量和私有方法

    默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量. 在python中定义私有变量只需要在变 ...

  5. Python私有变量与私有方法

    python的私有化是为了规划私有属性,避免非相关的访问[假如!我有老婆,你不能直接知道我老婆是谁,你只有问我才会知道,即我的私有属性只有我知道] 在python中定义私有变量和私有方法只需要在变量名 ...

  6. python中不被定义_一日一技:在Python中双下划线私有方法不能被调用的原理

    一日一技:在Python中双下划线私有方法不能被调用的原理 在使用Python编写面向对象的代码时,我们会常常使用"继承"这种开发方式.例如下面这一段代码: class Info: ...

  7. java中私有变量和方法_Java 私有变量和私有方法

    作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com) 内容索引 访问私有变量 访问私有方法 在通常的观点中从对象的外部访问私有变量以及方法是不允许的,但是 Java ...

  8. python中none算变量吗_在python中对变量判断是否为None的三种方法总结

    三种主要的写法有: 第一种:if X is None; 第二种:if not X: 当X为None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()这 ...

  9. Object-C 有私有变量?私有方法?

    从object-c 动态编译机制上讲是不存在私有变量和私有方法的.但是如果你不在.h中声明变量和方法在其它地方无法访问这些变量和方法,那么就成了私有的了.私有变量也可以使用@prviter进行修饰. ...

最新文章

  1. 【Groovy】自定义 Xml 生成器 BuilderSupport ( 构造 Xml 节点类 | 封装节点名称、节点值、节点属性、子节点 | 将封装的节点数据转为 Xml 字符串 )
  2. NJ4X源码阅读分析笔记系列(三)—— nj4x-ts深入分析
  3. python对应的岗位_隐式相对导入如何在Python中工作?
  4. 《Spring源码深度解析》 PDF
  5. Baby‘s first attempt on CPU(贪心+模拟)
  6. java如何开根号?
  7. Ubuntu下c语言IDE学习
  8. Visio实现箭头反向
  9. 表格相对引用和绝对引用及相互切换(复制单元格函数公式保持不变)
  10. 记录Notepad软件保护眼睛的颜色怎么设置
  11. 用程序实现:给一个不多于4位的正整数,求出它是几位数,逆序输出各位数字?
  12. ai为什么要栅格化_AI 效果-栅格化的具体用途是什么
  13. 网站 xjjdog.cn,敬请惠存
  14. AWS 中文入门开发教学 35- MySQL@RDS - 建立MySQL数据库服务
  15. 学习PCB之pcb器件的绘制
  16. ORACLE的统计分析
  17. 极路由 openwrt 使用 SyncY 实现百度云同步
  18. 宋宝华- KVM最初的2小时(KVM从入门到入不了门)
  19. 请详细的描述PBR角色只做流程,用分解步奏一步步的详细描述出来
  20. 记录一次详细在线加密PDF解密过程

热门文章

  1. verdi直接打开list文件
  2. CAN log之blf/vsb/asc/trc
  3. 高新兴与中兴通讯再合作:受让中兴物联11.43%股权
  4. 安卓卡android不卡,安卓手机用久了卡顿,到底哪些东西是可以删掉的?
  5. miui9支持android,MIUI9详细体验:最好用Android不是吹的!
  6. 国内专利申请相关概念综述
  7. 达成学习目标的四个步骤
  8. 5.2.3案例小猪称体重
  9. 安装算量选用哪款软件好?免费试用
  10. 移动硬盘可以安装matlab吗,ansys安装在移动硬盘上可以用吗