python中常見的內置類型
什么是魔法函數?
python的魔法函數總被雙下划線包圍,它們可以給你的類增加特殊的方法。如果你的對象實現了這些方法中的一個,那么這個方法就會在特殊情況下被調用,你可以定義想要
的行為,而這一切都是自動發生的。
魔法函數一覽
魔法函數舉例
1.1.__getitem__
把對象變成可迭代的對象
例子:
class Company(object): def __init__(self,employee_list): self.employee = employee_list #魔法函數,給類加可迭代類型 def __getitem__(self, item): return self.employee[item] company = Company(['11','22','33']) #加了魔法函數“__getitem__”,類就成了可迭代的了 for em in company: print(em) #11,22,33
如果不用魔法函數循環出每個員工的方法
class Company(object): def __init__(self,employee_list): self.employee = employee_list company = Company(['11','22','33']) for em in company.employee: print(em)
還可以切片和獲取長度
class Company(object): def __init__(self,employee_list): self.employee = employee_list #魔法函數 def __getitem__(self, item): return self.employee[item] company = Company(['11','22','33']) #可以切片 company1 = company[:2] #可以判斷len長度 print(len(company1)) #2 for em in company1: print(em) #11,22
1.2.__len__
class Company(object): def __init__(self, employee_list): self.employee = employee_list # # def __getitem__(self, item): # return self.employee[item] def __len__(self): return len(self.employee) company = Company(["11", "22", "33"]) #如果不加魔法函數,len(company)會報錯的 print(len(company)) #3
1.3. __repr__和__str__
1.安裝交互環境(jupyter)
pip install -i https://pypi.douban.com/simple ipython pip install -i https://pypi.douban.com/simple notebook #啟動 ipython notebook
2.__repr__和__str__的用法


