2018.12.7python筆記(3.3-3.5)
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.
通過類也無法訪問方法中的屬性
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() 呼叫類的靜態方法