Student类本身需要绑定一个属性
直接在class中定义属性,这种属性是类属性,归Student类所有:
class Student(object):
name = 'Student'
类的所有实例都可以访问到类属性
>>> s = Student() # 创建实例s
>>> print(s.name)
Student
# 打印name属性,因为实例并没有name属性,所以会继续查找class的name属性
>>> s.name = 'Michael' # 给实例绑定name属性
>>> print(s.name)
Michael
# 由于实例属性优先级比类属性高,因此,它会屏蔽掉类的name属性

相同名称的实例属性将屏蔽掉类属性

给实例绑定一个方法
>>> def set_age(self, age): # 定义一个函数作为实例方法
... self.age = age
...
>>> from types import MethodType
>>> s.set_age = MethodType(set_age, s) # 给实例绑定一个方法
>>> s.set_age(25) # 调用实例方法
>>> s.age # 测试结果
25
给一个实例绑定的方法,对另一个实例是不起作用的

可以给class绑定方法:

>>> def set_score(self, score):
... self.score = score
...
>>> Student.set_score = set_score

限制实例的属性
使用__slots__
只允许对Student实例添加name和age属性
class Student(object):
__slots__ = ('name', 'age') # 用tuple定义允许绑定的属性名称

>>> s = Student() # 创建新的实例
>>> s.name = 'Michael' # 绑定属性'name'
>>> s.age = 25 # 绑定属性'age'
>>> s.score = 99 # 绑定属性'score'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Student' object has no attribute 'score'
由于'score'没有被放到__slots__中,所以不能绑定score属性

__slots__定义的属性仅对当前类实例起作用,对继承的子类是不起作用的

转载于:https://www.cnblogs.com/wander-clouds/p/8458115.html

python 类属性及限制相关推荐

  1. Python类属性和实例属性分别是什么?

    实例属性即同一个类的不同实例,其值是互不关联的,也不会互相影响的,定义时使用"self.属性名",调用时也使用"self.属性名". 类属性则是同一个类的所有实 ...

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

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

  3. Python类属性、类方法和静态方法

    Python类属性.类方法和静态方法 在Python中,一切皆对象.通过类创建出来的对象是实例对象,类本身也是对象,称为类对象. 一.类属性 对象都有属性,我们常说的对象属性是实例对象拥有的属性,又称 ...

  4. Python类属性访问的魔法方法

    Python类属性访问的魔法方法: 1. __getattr__(self, name) - 定义当用户试图获取一个不存在的属性时的行为 2. __getattribute__(self, name) ...

  5. [转载] Python类属性、类方法和静态方法

    参考链接: Python中的类和实例属性 Python类属性.类方法和静态方法 在Python中,一切皆对象.通过类创建出来的对象是实例对象,类本身也是对象,称为类对象. 一.类属性 对象都有属性,我 ...

  6. python 类-Python 类属性和类方法

    仅用学习参考 目标类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 -- 实例使用面向对象开发,第 1 步 是设计 类 使用 类名() 创建对象,创建对象 的动作有两步: ...

  7. 关于Python类属性与实例属性的讨论

    标题名字有点长. 之所以想写这个文章是因为碰巧看到网上一篇关于Pyhon中类属性及实例属性区别的帖子.因为我之前也被这个问题困扰过,今天碰巧看到了这篇帖子,发现帖子的作者只是描述了现象,然后对原因的解 ...

  8. python 类属性和对象属性--定义和作用域

    类属性和对象属性定义 Python一切皆对象(object),每个对象都可能有多个属性(attribute).Python的属性有一套统一的管理方案. 对象的属性可能来自于其类定义,叫做类属性(cla ...

  9. python类属性的应用 子类继承可以节约空间

    子类继承了父类 如果子类共用一些数据,可以考虑把这个数据处理为负类的类属性 并且当腹内的这个类属性发生变化的时候,所有的脂类都可以获得 详细情况可以看下面的例子 class BaseData:data ...

  10. 软件测试学习 之 Python 类属性 实例属性、实例方法 类方法 静态方法

    本篇的主要内容是自己的手动操作的学习记录,关于个名词的理论概念参见以下文章: Python 实例方法.类方法.静态方法的区别与作用 作者:蔷薇Nina 出处:博客园 python3类对象.实例对象.类 ...

最新文章

  1. Fragment注入漏洞(CVE-2013-6271)检测
  2. python非线性回归分析_sklearn实现非线性回归模型
  3. php二维数组中的查找,PHP实现二维数组中的查找算法小结
  4. mysql索引_效率测试(包含测试sql脚本300万条数据),可用作教学案例。
  5. 一本书看懂数字化转型|全新《2021年度案例观察》限时免费送
  6. Qt编写echart仪表盘JS交互程序支持webkit和webengine(开源)
  7. C++安全方向openssl(二):2.2 C++代码实现base16编解码
  8. 记git升级版本之后出现fatal: NullReferenceException encountered问题
  9. socket端口重定向(python示例)
  10. 全网首发:JDK绘制文字系列博文汇总
  11. 一个月的java工作总结
  12. WAMP5配置本地服务器(超级详细教程)
  13. 分享一个返利系统源码,前端uni+后端php开发的影票返利系统源码
  14. RK系列SDK -- Android HFP蓝牙通话音频处理(蓝牙音箱方案)
  15. Spring Security (一) : 设置登录账号密码的三种方式
  16. 常用的HTTP请求方法
  17. 中国工程院院士邬江兴:未来网络之憧憬——情景网络
  18. Excel VBA教程–如何使用Visual Basic在电子表格中编写代码
  19. 索爱W550C的刷机过程
  20. 263Echarts - 3D 折线图(三维折线图正交投影)

热门文章

  1. MySQL第10天:MySQL索引优化分析之索引介绍
  2. typedef的用法总结
  3. 《spring揭秘》读书笔记三
  4. layui 表格新增删除一行
  5. 荣耀10 Turbo版将上线发布,游戏玩家欢呼的手游利器
  6. 4.3. postForObject
  7. 工作中系统报错:数据库连接失败怎么办?
  8. 基于 Rancher 的企业 CI/CD 环境搭建
  9. Vsphere 6.0
  10. [轉]c#从Excel中读取图片