在 C++ 和 Java 中,属性(成员)有访问控制,如 public 表示任意代码可以访问该属性,private 表示仅当前类的代码才可以访问该属性。

Python 中没有这个访问控制符,但是可以在属性前面加上 __ 两个下划线来表示该属性不能在类外部访问。一般的属性都是可以在类的外部访问的,但是以两个下划线(__)开头的属性是不能在类的外部访问的。

下面的例子演示了这个情况:

>>> class Student:                     # 定义一个类

...   __version = "1.0"                # 私有的属性

...   version = "1.1"                  # 普通的属性

...                                    # 类属性定义完毕

...   def __init__(self):              # 初始化函数

...     self.__private_attr = 88       # 定义了一个私有的属性__private_attr

...     self.private_attr = 89         # 定义了一个普通的属性private_attr

...                                    # 类定义结束

>>> Student.version                    # 查看类属性

'1.1'

>>> Student.__version                  # 私有的类属性是不能访问的

Traceback (most recent call last):

File "", line 1, in

AttributeError: class Student has no attribute '__version'

>>> student_obj1 = Student()           # 创建一个类实例对象

>>> student_obj1.version               # 查看普通属性

'1.1'

>>> student_obj1.__version             # 查看私有属性,抛出异常

Traceback (most recent call last):

File "", line 1, in

AttributeError: Student instance has no attribute '__version'

>>> student_obj1.private_attr          # 查看普通属性

89

>>> student_obj1.__private_attr        # 查看私有属性,抛出异常

Traceback (most recent call last):

File "", line 1, in

AttributeError: Student instance has no attribute '__private_attr'

python类的私有属性_Python类的私有属性相关推荐

  1. python 类静态属性_python面向对象之静态属性/静态方法/类方法/组合

    继续学习,不要松懈 #!/usr/bin/env python # coding:utf-8 class Campus: def __init__(self,name,addr,type): self ...

  2. python类属性和实例属性_Python 类属性与实例属性,类对象与实例对象用法分析...

    本文实例讲述了Python 类属性与实例属性,类对象与实例对象用法.分享给大家供大家参考,具体如下: demo.py(类属性,所有实例对象共用类属性): # 定义工具类 继承object是为了兼容py ...

  3. python 给类添加属性_python – 如何动态添加属性到类中?

    我想我应该扩大这个答案,现在我年纪大了,更聪明,知道发生了什么.迟到总比不到好. 您可以动态地向类添加属性.但是这是catch:你必须将它添加到类. >>> class Foo(ob ...

  4. python内置类属性_python常用内建属性大全

    在python中创建一个类,它不仅有我们自定义的属性和方法,还有与生俱来的一些属性和方法,我们叫它内建属性. 下面是类常用内建属性列表. __init__ 负责一个类实例化中的初始化操作 __new_ ...

  5. python中类的定义方法_Python类的定义、方法和属性使用

    类用来描述具有相同的属性和方法的对象的集合. 对于在类中定义的函数,称为方法. 类变量不直接叫做类变量,称为属性. 1.类的定义 例子: classUser():pass 说明: (1)定义了一个类名 ...

  6. python类的专有方法_Python——类的专有方法

    Python除了自定义私有变量和方法外,还可以定义专有方法.专有方法是在特殊情况下或使用特殊语法时由python调用的,而不是像普通方法一样在代码中直接调用.看到形如__XXX__的变量或函数名时就需 ...

  7. python类中最大的_python类的学习笔记(一)

    python中一切皆对象,类型的本质就是类. 在python中,用变量表示特征,用函数表示技能,因而具有相同特征和技能的一类事物就是'类',对象是则是这一类事物中具体的一个. 声明函数的方法: def ...

  8. python类定义的讲解_python类定义的讲解

    Python中的类属性和对象属性的区别详解 类属性: class Employee(object): emCount=0 def __init__(self,name,salary): self.na ...

  9. python的类和对象例题_Python类、类对象和实例对象、组合、绑定详细讲解

    目录: 一.组合 二.类.类对象和实例对象 三.到底什么是绑定 四.课时39课后习题及答案 *********** 一.组合 *********** 现在要求定义一个类,叫水池,水池里要有乌龟和鱼. ...

最新文章

  1. 转Java转iOS-第一个项目总结(2):遇到问题和解决方案
  2. linux上使用git把代码push到gitee上
  3. 固态硬盘量产工具_固态硬盘怎么修复
  4. 【超级攻略】仔细研究这些潜规则,你的APP用户量立刻翻番!
  5. java代码输出伞_在伞中集成测试Web应用程序的问题
  6. html纵向的跑马灯效果,HTML+CSS入门 如何实现跑马灯/走马灯效果
  7. 玩转java并发工具_玩Java并发
  8. __call__方法解析
  9. SpringBoot—数据库初始化脚本配置
  10. 【英语学习】【WOTD】doldrums 释义/词源/示例
  11. VS调用tensorflow模型记录
  12. 谈薪资被 HR 怼了:估计你一辈子就是个程序员!气不过啊。。。
  13. 构建可扩展的思科互联网络---多区域OSPF
  14. 【ZZULIOJ】郑州轻工业大学oj题解整合
  15. 工行网银支付浏览器兼容问题小记
  16. linux的adsl拨号上网,详细讲解Linux系统下ADSL拨号上网的方法
  17. STM32——理解时钟系统
  18. java url链接超时_Java编程中HttpURLConnection的连接超时中的异常
  19. 爬取豆瓣top250电影并分析
  20. 30天自制操作系统:第一天

热门文章

  1. mybatis mysql5.7_spring boot整合ES+mysql5.7+mybatis+iview个人博客系统
  2. ncf 推荐系统_浅析神经协同过滤NCF在推荐系统的应用
  3. 时间组件选择一个时间段_衡南(光伏支架组件安装)施工队
  4. C++学习之路(一)
  5. python刷题+leetcode(第二部分)
  6. “横平竖直”进行连线+将相邻框进行合并
  7. 消息中间件 --- Kafka快速入门
  8. 一文读懂类加载机制 --- ClassLoader
  9. Python 的协程库 greenlet 和 gevent
  10. linux 无法打开.ttf_win7系统ttf文件打不开怎么办【解决方法】