-
對(duì)象轉(zhuǎn)換成字符串的魔術(shù)方法?
__str__ ? ? ? ?把對(duì)象轉(zhuǎn)換成適合人看的字符串 ?
__repr__ ? ? ? 把對(duì)象轉(zhuǎn)換成適合機(jī)器看的字符串?
?__unicode__ 轉(zhuǎn)換的編碼
展現(xiàn)對(duì)象屬性魔術(shù)方法 __dir__
查看全部 -
def __getattribute__(self, name):
? return super(Programer, self).__getattribute__(name)
def __setattr__(self, name, value):
? self.__dict__[name] = value
查看全部 -
對(duì)象實(shí)例化的過程
查看全部 -
類的繼承
子類的類型判斷
isinstance
issubclass
查看全部 -
類的繼承?
super(B, self).method(arg)
查看全部 -
@classmethod
@property
查看全部 -
#Python有垃圾回收機(jī)制,會(huì)自動(dòng)調(diào)用__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 不需要參數(shù)
?? ?
?? ?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)
查看全部 -
函數(shù)和方法的區(qū)別
查看全部 -
直接在類里定義:這個(gè)類的所有對(duì)象,屬性都是一樣的
在構(gòu)造函數(shù)里定義:在構(gòu)造對(duì)象的時(shí)候把值傳進(jìn)去,每個(gè)對(duì)象的屬性不太相同
在屬性名前面加兩個(gè)__會(huì)改變屬性名的屬性。
查看全部 -
沒用過python,但是老師重原理,感覺還是挺不錯(cuò)的查看全部
-
__setattr__()查看全部
-
比較運(yùn)算符
__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
查看全部
舉報(bào)