-
對象轉換成字符串的魔術方法?
__str__ ? ? ? ?把對象轉換成適合人看的字符串 ?
__repr__ ? ? ? 把對象轉換成適合機器看的字符串?
?__unicode__ 轉換的編碼
展現對象屬性魔術方法 __dir__
查看全部 -
def __getattribute__(self, name):
? return super(Programer, self).__getattribute__(name)
def __setattr__(self, name, value):
? self.__dict__[name] = value
查看全部 -
對象實例化的過程
查看全部 -
類的繼承
子類的類型判斷
isinstance
issubclass
查看全部 -
類的繼承?
super(B, self).method(arg)
查看全部 -
@classmethod
@property
查看全部 -
#Python有垃圾回收機制,會自動調用__del__()方法
class Programer(object):
?? ?def __new__(cls,*args,**kwargs):
?? ??? ?print ('call __new__ method')
?? ??? ?print(args)
?? ??? ?return super(Programer,cls).__new__(cls)#object() takes no parameters 不需要參數
?? ?
?? ?def __init__(self,name,age):
?? ??? ?print ('call __init__ metod')
?? ??? ?self.name = name
?? ??? ?setattr(self,"name",name)
?? ?pass
?? ?
programer = Programer("Test",20)
print (programer.__dict__)查看全部 -
__setattr__,__getattribute__無限遞歸
查看全部 -
# -*- coding: utf-8 -*-
class Programer(object):
? ??
? ? def __init__(self,name,age):
? ? ? ? self.name = name?
? ? ? ? if isinstance(age,int):
? ? ? ? ? ? self.age=age
? ? ? ? else:
? ? ? ? ? ? raise Exception('age must be int')
? ? def __eq__(self, other):
? ? ? ? if isinstance(other,Programer):
? ? ? ? ? ? if self.age == other.age:
? ? ? ? ? ? ? ? return True
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? return False
? ? ? ? else:
? ? ? ? ? ? raise Exception('The type of object must be Programer')
? ? ? ??
? ? def __add__(self,other):
? ? ? ? if isinstance(other,Programer):
? ? ? ? ? ? return self.age + other.age
? ? ? ? else:
? ? ? ? ? ? raise Exception('The type of object must be Programer')
? ? ??
? ??
if __name__=='__main__':
? ? p1 = Programer('Albert',25)
? ? p2 = Programer('Bill',30)
? ? print(p1==p2)
? ? print(p1+p2)
查看全部 -
函數和方法的區別
查看全部 -
直接在類里定義:這個類的所有對象,屬性都是一樣的
在構造函數里定義:在構造對象的時候把值傳進去,每個對象的屬性不太相同
在屬性名前面加兩個__會改變屬性名的屬性。
查看全部 -
沒用過python,但是老師重原理,感覺還是挺不錯的查看全部
-
__setattr__()查看全部
-
比較運算符
__cmp__(self,other) __eq__(self,other) __lt__(self,other) __gt__(self,other)
查看全部 -
class?Programer(object): ????def?__init__(self,name,age) ????????self.name?=?name ????????self.age?=?age
查看全部
舉報