类属性必须赋值。
创建类属性
类是模板,而实例则是根据类创建的对象。绑定在一个实例上的属性不会影响其他实例,但是,类本身也是一个对象,如果在类上绑定一个属性,则所有实例都可以访问类的属性,并且,所有实例访问的类属性都是同一个!也就是说,实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。定义类属性可以直接在 class 中定义:class Person(object):address = 'Earth'def __init__(self, name):self.name = name
因为类属性是直接绑定在类上的,所以,访问类属性不需要创建实例,就可以直接访问:print Person.address
# => Earth
对一个实例调用类的属性也是可以访问的,所有实例都可以访问到它所属的类的属性:p1 = Person('Bob')
p2 = Person('Alice')
print p1.address
# => Earth
print p2.address
# => Earth
由于Python是动态语言,类属性也是可以动态添加和修改的:Person.address = 'China'
print p1.address
# => 'China'
print p2.address
# => 'China'
因为类属性只有一份,所以,当Person类的address改变时,所有实例访问到的类属性都改变了。任务
请给 Person 类添加一个类属性 count,每创建一个实例,count 属性就加 1,这样就可以统计出一共创建了多少个 Person 的实例。?不会了怎么办
由于创建实例必定会调用__init__()方法,所以在这里修改类属性 count 很合适。参考代码:class Person(object):count = 0def __init__(self, name):Person.count = Person.count + 1self.name = name
p1 = Person('Bob')
print Person.count
# => 1
p2 = Person('Alice')
print Person.count
# => 2
p3 = Person('Tim')
print Person.count
# => 3

转载于:https://www.cnblogs.com/superxuezhazha/p/5726029.html

python 添加类属性相关推荐

  1. python 类装饰器和继承_python装饰器、继承、元类、mixin,四种給类动态添加类属性和方法的方式(一)...

    介绍装饰器.继承.元类.mixin,四种給类动态添加类属性和方法的方式 有时候需要給类添加额外的东西,有些东西很频繁,每个类都需要,如果不想反复的复制粘贴到每个类,可以动态添加. 1 #coding= ...

  2. Python的类属性与对象属性的区别

    Python的类属性与对象属性的区别 命名规则: 1.1 类属性由类创建,命名规则为类名.属性名 1.2 对象属性由对象创建,命名规则为对象名.属性名 调用方法: 2.1 类属性由类调用 2.2 对象 ...

  3. Python 定义类属性

    在OOP(Object Oriented Programming)程序设计中,当我们定义一个class的时候,可以从某个现有的class 继承,新的class称为子类(Subclass),而被继承的c ...

  4. python面向对象类属性_python面向对象之类属性和类方法案例分析

    本文实例讲述了python面向对象之类属性和类方法.分享给大家供大家参考,具体如下: 目标 类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 -- 实例 使用面相对象开发, ...

  5. Python之 类属性和类方法

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

  6. Python基础——类属性、类方法、异常

    文章目录 一.实例属性和类属性 1.类属性 2.实例属性 3.实例方法 二.实例方法.类方法和静态方法 1.实例方法 2.类方法 3.静态方法 三.__new__方法 三.单例设计模式 四.射击游戏 ...

  7. python的类属性和方法_Python中类属性、实例属性和实例方法的区别

    你似乎对概念有相当好的理解.很难找到用通用方式解释的信息,尤其是像python这样一种广泛使用的语言.我基本上会附和你的正确假设,并在此过程中做一些小的调整.在 类属性是将从类共享创建的所有对象的特征 ...

  8. 【python】类属性以及实例属性、实例方法的介绍

    1. 类的组成 class Demo():var = 'demo' # 类属性,公有__num = 100 # 类属性,私有def __init__(self,name='muzi',age=18): ...

  9. python的类属性和方法_Python 类的属性和方法

    本文介绍Python类中的属性和方法.和大部分语言类似,Python中的属性和方法也公有(public)和私有(private) 的区分. 一.类的公有和私有属性: 在Python中一般定义的属性为公 ...

最新文章

  1. 2022-2028年中国互联网+不良资产处置行业深度调研及投资前景预测报告
  2. 巨人网络开发工程师试题
  3. 创建一个Android模拟器
  4. Node 抓取非utf-8编码页面
  5. IOS-组件化架构漫谈
  6. python安装库报错Microsoft visual c++ 14.0 is required问题解决办法
  7. 请不要更多的基本情节
  8. 揭秘淘宝286亿海量图片存储与处理架构,互联网营销
  9. 如何制作一个基于Tile的游戏 Cocos2d-x 2 0 4
  10. 转:70个漂亮实用的JavaScript和Ajax技术(有图有例子)
  11. [Android Studio] Android Studio如何快速生成get,set,tostring,构造函数
  12. 智能马桶盖FCC认证 家电检测认证标准及要求
  13. OpenCV——分离颜色通道,图像对比度,亮度调整,离散傅里叶变换(10)
  14. 制作精致闪电天气APP图标的PS教程
  15. 【Android开发】wifi开关与wifi连接(密码连接)
  16. 电感线圈绕制常用的漆包线
  17. 错误使用 load ASCII 文件的行号 1 中的文本未知“MATLAB“。
  18. 读书笔记17 《靠谱》大石哲之
  19. ubuntu18.04 | soundfile安装报错与解决
  20. 1--100以内的质数(只能被1和其本身整除的数就是质数,1不是质数)

热门文章

  1. 常用的 css 样式 记录
  2. Struts2数据传输的背后机制:ValueStack(值栈)
  3. Hibernate从入门到精通(十)多对多单向关联映射
  4. 算法学习:最小圆覆盖
  5. openssl 模块 安装 centso Ubuntu
  6. redis面试问题(二)
  7. |洛谷|分治|P2799 国王的魔镜
  8. Beanstalkd使用
  9. [转] 使用模板自定义 WPF 控件
  10. MapReduce TopK统计加排序