发布时间:2019-07-12 09:48:32编辑:auto阅读(1151)
class AAA(): aaa = 10 # 可AAA.aaa直接调用,当实例属性没重名时,也可以obj1.aaa调用 # 有重名时 通过对象调用的是实例属性 def __init__(self): # self.xxx均为实例属性,也可以在其他方法中定义,但只有在其方法调用才会生效 # __init__是构造函数,对象创建就调用,用于初始化实例属性 self.color = 'red' # 此为实例对象,对内的其他方法可通过 self.color调用 # 对外 可以通过对象调用 obj1.color zone = 'china' # 此为局部变量,只能在本方法使用 self.__fruit = 'apple' # 此为私有化实例属性,对内 self.__fruit 调用 # 默认对外不予许访问 ,但实际提供了访问私有属性的方式,用于测试和调试 # obj1._AAA__color # 建议数据私有化,通过get set方法等方法对数据操作 @ staticmethod # 方法一:在函数上@ staticmethod 修饰,通过类名调用 AAA.getfruit() def getfruit(): pass def __getfruit(): # 一个不带self参数的私有函数 pass count = staticmethod(__getfruit) # 将__getfruit()转化为静态方法,并赋值给count # 类名调用AAA.count() # 情形1 obj1 = AAA() obj2 = AAA() print obj1.aaa,obj2.aaa,AAA.aaa # 情形2 obj1.aaa += 2 print obj1.aaa, obj2.aaa, AAA.aaa # 情形3 AAA.aaa += 3 print obj1.aaa, obj2.aaa, AAA.aaa
到这里就可以完满解释上面的问题:
1. Python中属性的获取是按照从下到上的顺序来查找属性;
2. Python中的类和实例是两个完全独立的对象;
3. Python中的属性设置(比如赋值)是针对对象本身进行的;
在python中类和对象都可以访问类属性,而java中的静态变量只能被类调用
上一篇: python-os模块
下一篇: Inno Setup 3 :语法解析(二
47479
45781
36780
34302
28950
25586
24431
19602
19089
17623
5454°
6037°
5553°
5628°
6554°
5365°
5366°
5872°
5845°
7159°