python學習第二十三章
阿新 • • 發佈:2018-07-05
深入 一段時間 格式化 ron 似的 iss python 代碼 str
主要內容:
1.特殊方法
2.設計模式:單例模式
1.特殊方法
isinstance 判斷obj1是否是B這個類實例化來的,或者是B這個類的父類實例化來的.是的話,返回true,不是返回False
isinstance(obj1,B)
issubclass 判斷一個類是否是另一個類的派生類.
print(issubclass(B,A)) 如果B類是A類派生來的話,那麽就是Ture.
__len__, __hash__ __str__ __repr__
len(a1 )如果對一個對象進行len()操作, 他會找到對象從屬於的類中的__len__方法,並且此方法中必須要有數字的返回值.
__hash__方法也有類似的效果.
示例:
class A: def __init__(self,name,age): self.name = name self.age = age def __len__(self): return len(self.__dict__) a1 = A(‘oldboy‘,1000) print(len(a1))
__str__方法
# print(a) # 打印對象,就會觸發類中__str__方法
# str(a) # str(a),就會觸發類中__str__方法
# print(‘打印此類對象:%s‘ % a) # 格式化輸出 ‘%s‘a
repr也是類似的方法
__call__ 方法
對象() 自動執行類中的__call__方法
示例:
class A: def __init__(self): pass def func(self): print(111) def __call__(self, *args, **kwargs): ‘‘‘各種代碼‘‘‘ # print(666) print(args) return ‘wusir‘ a1 = A() print(a1(1,2,3))
__eq__方法
對一個類實例化的兩個對象進行比較運算的時候,他會自動觸發類中的__eq__
class A: def __init__(self): self.a = 1 self.b = 2 def __eq__(self,obj): if self.a == obj.a and self.b == obj.b: return True a1 = A() b1 = A() print(a1 == b1)
__del__ 析構方法
python垃圾回收機制
文件中你創建的所有的變量,類等等.執行完畢之後,
一段時間內如果沒有用到, 他會自動在內存中去除.
深入研究: 他會將你的所有變量,類等等做個標記,在一段時間之內,沒有被調用,則就會自動回收.
class A: def __init__(self): pass def __del__(self): print(666) a1 = A()
python學習第二十三章