本文共 1504 字,大约阅读时间需要 5 分钟。
3.3 类的属性总结
类属性,也是共有属性类的私有属性 对象的共有属性对象的私有属性内置属性函数的局部变量 全局变量#!/usr/bin/python
#coding:utf8class 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()后才能访问 var3print 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
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() 调用类的静态方法转载于:https://blog.51cto.com/5009293/2327342