类的属性-总结
- 类属性,也是共有属性
- 类的私有属性
- 对象的共有属性
- 对象的私有属性
- 内置属性
- 函数的局部变量
- 全局变量
#!/usr/bin/python
#coding:utf8
class MyClass(object):
var1 = '类属性,类的共有属性 var1'
__var2 = '类的私有属性 __var2'
def func1(self):
self.var3 = '对象的公有属性 __var3'
self.__var3 = '对象的私有属性__ var4' // 对象的私有属性通过对象不能访问
var5 = '函数的局部变量'
mc = MyClass()
mc.func1() # 对象的公有属性 访问需要先执行方法才能访问。
print mc.var3 // 对象的属性只能通过对象访问
#print mc._MyClass__var2 // 不建议通过类访问私有属性这么访问
//对象的属性定义在方法里,类的属性定义在方法外
#!/usr/bin/python
#coding:utf8
class MyClass(object):
var1 = '类属性,类的共有属性 var1'
__var2 = '类的私有属性 __var2'
def func1(self):
self.var3 = '对象的公有属性 __var3'
self.__var3 = '对象的私有属性__ var4'
var5 = '函数的局部变量' // 在func2无法访问var5,在一个函数里定义的变量在另一个函数无法访问
def func2(self):
print self.var1
print self.__var2
print self.var3
print self.__var3
mc = MyClass()
mc.func1()
mc.func2()
print mc.__dict__ // 打印对象的属性,只打印对象的公有属性和私有属性
print MyClass.__dict__ // 内置属性通过类调用
类方法总结
#!/usr/bin/python
#coding:utf8
class MyClass(object):
name = 'Test'
def __init__(self): //类构造函数,也叫内置函数,在类实例化时候自动回被执行
self.func1()
self.__func2()
self.classFun()
self.staticFun()
def func1(self):
print self.name,
print "我是公有方法"
self.__func2() // 通过其它方法间接调用func2
def __func2(self):
print self.name,
print "我是私有方法"
@classmethod //装饰器表示方法,可以通过类调用。 MyClass.classFun()
def classFun(self):
print self.name,
print "我是类方法"
@staticmethod
def staticFun(): // 静态方法括号中没有self
print MyClass.name, // 只能通过类替代self来引用
print "我是静态方法"
mc = MyClass()
mc.func1()
# mc.__func2() //通过对象不能调用私有方法,只能在内部调用。