物件導向之
1.成員修飾
2.特殊成員
3.methclass,類之源,type建立
一、成員修飾符
共有成員
私有成員, __欄位名
- 無法直接訪問,只能間接訪問
class foo:
def __init__(self,name,age):
self.name = name
#self.age = age
self.__age = age
obj = foo()
obj.name
#obj.age
obj.__age
二、特殊成員
__init__ 類()自動執行
__del__
__call__ 物件() 類()() 自動執行
__int__ int(物件)
__str__ str()
__add__
__dict__ # 講物件中封裝的所有內容通過字典的形式返回
__getitem__ # 切片(slice型別)或者索引 py3中放入其中
__setitem__
__delitem__
__iter__
# 如果類中有 __iter__ 方法,物件=》可迭代物件
# 物件.__iter__() 的返回值: 迭代器
# for 迴圈,迭代器,next
# for 迴圈,可迭代物件,物件.__iter__(),迭代器,next
# 1、執行li物件的類f類中的 __iter__方法,並獲取其返回值
# 2、迴圈上一步中返回的物件
三、metaclass,類的祖宗
a.python中一切事物都是物件
b. class foo:
pass
obj = foo()
# obj是物件,foo類
# foo類也是乙個物件,type的物件
c. 類都是type類的物件 type(..)
「物件」都是以類的物件 類()
四、異常處理
1.如果錯誤。try:(**塊)
except exception(總的錯誤)
indexerror valueerror
else和finally 的末置位
2.主動出發異常
raise exception('資料庫處理錯誤')
3.自定義異常
rais alexerror('404') >>>>except alexerror as e
4.assert+條件 條件成立則不執行,反之直接異常 >>>>>>>必須通過
五、反射(呼叫物件,取決於方法)
getattr>>>>>>>>getattr(obj,input) 獲取內容
setattr>>>>>>>>設定
delattr>>>>>>>>刪除
hasattr>>>>>>>>if hasattr(obj,input) 則 判斷
六、單例模式
物件導向之成員修飾符
成員修飾符 公有,私有 私有,只有自己好使,其他都不好使。只有在自己類中可以使用,在其他類中,不論是兒子,孫子都不好使。如果要訪問私有屬性,只有通過中間人來訪問,這個中間人就是這個類中的乙個函式,此函式可以訪問此類中的私有屬性。成員修飾符 私有的屬性,只能在自己的範圍內訪問。自己訪問自己。誰也不好使...
Python物件導向特殊成員
類的特殊成員之call usr bin env python coding utf 8 class specialmembers 類的構造方法 def init self print my blog is url 物件的構造方法 def call self print my name is yang...
物件導向 類中部分特殊成員
class foo object def init self,a1,a2 self.a1 a1 self.a2 a2 def call self,args,kwargs print 11111,args,kwargs return 123 def getitem self,item print it...