1. 程式人生 > >2018.12.7python筆記(3.3-3.5)

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.

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() 呼叫類的靜態方法