Python面向对象基础变量
In [1]: class A: ...: NAME = 'A' # 类的直接下级作用域 叫做类变量 ...: def init(self, name): ...: self.name = name # 关联到实例的变量 叫做实例变量 ...: In [2]: a = A('a') In [3]: a.NAME Out[3]: 'A' In [4]: a.name Out[4]: 'a' In [5]: A.NAME Out[5]: 'A' In [6]: A.name --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) in () ----> 1 A.name AttributeError: type object 'A' has no attribute 'name' In [7]: a2 = A('a2') In [8]: a2.NAME Out[8]: 'A' In [9]: a2.NAME = 'A2' # 给示例a2的类变量NAME赋值 In [10]: a2.NAME Out[10]: 'A2' In [11]: a.NAME Out[11]: 'A' In [12]: A.NAME # 类变量没有变化 Out[12]: 'A' In [13]: a2.xxx = 3 In [14]: a2.xxx # 赋值之后a2多了xxx属性 Out[14]: 3 In [15]: A.NAME = 'AA' # 直接修改类的类变量 In [16]: A.NAME Out[16]: 'AA' In [17]: a.NAME # 对应的实例的类变量也发生了改变 Out[17]: 'AA' In [18]: a2.NAME # a2的类变量在之前的赋值被覆盖了,因此改变类变量的并不会影响a2 Out[18]: 'A2'
最新文章
- css3 transition属性
- python之SQLAlchemy
- 计划安装SQL Server2012需求详细
- Codeforces Round #160 (Div. 2) D. Maxim and Restaurant(DP)
- ios 定位 监听是否跨入某个指定的区域
- docker squid---but git proxy should specify by git config --global http.proxy http:...
- EhCache 分布式缓存/缓存集群
- 盘点 DevOps 世界的杰出女性(一)
- Python性能测试
- 动态加载JS文件,并根据JS文件的加载状态来执行自己的回调函数
- SQL-Delete Duplicate Emails
- python爬虫系列之爬京东手机数据
- ABAP 中 Table Control例子
- thinkphp学习笔记7—多层MVC
- HTML——超文本标记语言
- Maven多项目继承:dependencyManagement scope=import
- 字符串和ASCII之间的转换
- Csharp: read Sybase SQL anywhere5.5 using c#
- C# Process获取当前进程信息
- 直接插入排序实现(Java)
热门文章
- 设计模式C++模板(Template)模式
- Javascript逻辑运算认识
- .Net 单元测试框架xUnit使用
- laravel在视图中使用类似于“__PUBLIC__”,“__UPLOADS__”的操作
- mac:app已损坏,打不开。你应该将它移到废纸篓。
- 面试【JAVA基础】多线程
- RedisTemplate: Failed to deserialize payload
- MyBatis-Plus分页——PageHelper和IPage介绍
- 12_进程,线程,协程,IO多路复用的区别
- javascript面试题(一)