3.3 类的属性总结
类属性, 也是共有属性
类的私有属性
对象的共有属性
对象的私有属性
内置属性
函数的局部变量
全局变量
- #!/usr/bin/python
- #coding:utf8
- class MyClass(object):
- var1='类属性, 类的公有属性 var1'
- var2 = '类的私有属性 var2'
- def func1(self):
- self.var3 = '对象的公有属性 var3'
- self.__var4 = '对象的私有属性 var4'
var5 = '函数的局部变量' 不能在类外访问
mc = MyClass()
print mc._MyClassvar2 通过对象来访问私有属性
mc.var1 访问类的公有属性 \
mc.func1()
mc.var3 对象的公有属性只能在方法调用后才能访问
mc1 = MyClass() 再实例化一个对象
mc1.var3 无法访问 因为 mc1 还没有调用 func1 方法
print MyClass.var1 通过类访问公有属性
print MyClass.var2 报错, 通过类无法访问私有属性
通过类也无法访问方法中的属性
def func2(self): 在类内部再定义一个方法
print self.var1 可以访问类属性
print self.__var2 可以访问类的私有属性
print self.var3 调用 func1() 后才能访问 var3
print var5 报错, 不能访问另一个方法的局部变量, 全局变量才能被方法访问
print mc.dict 打印类的内置属性
{'_MyClass__var4': '\xe5\xaf\xb9\xe8\xb1\xa1\xe7\x9a\x84\xe7\xa7\x81\xe6\x9c\x89\xe5\xb1\x9e\xe6\x80\xa7 var4', 'var3': '\xe5\xaf\xb9\xe8\xb1\xa1\xe7\x9a\x84\xe5\x85\xac\xe6\x9c\x89\xe5\xb1\x9e\xe6\x80\xa7 var3'}
print MyClass.dict 通过类调用内置属性
3.4 类的方法总结
? 公有方法
? 私有方法
? 类方法
? 静态方法
? 内置方法
- #!/usr/bin/python
- coding:utf8
- class MyClass(object):
- name = 'Test'
- def init(self):
- self.func1()
- self.__func2()
- def func1(self):
- print self.name
- print "我是公有方法"
self.__func2() 在公有方法中调用私有方法
- def __func2(self):
- print self.name
- print "我是私有方法"
- def classFun(self):
- print self.name
- print "我是类方法"
@staticmethod 定义静态装饰器
def staticFun():
print MyClass.name 只能通过类来引用
- print "我是静态方法"
- mc = MyClass()
- mc.func1()
MyClass.classFun() 调用类方法
MyClass.staticFun() 调用类的静态方法
来源: http://www.bubuko.com/infodetail-2875609.html