零基础学python:魔法函数都有了解吗
生活随笔
收集整理的這篇文章主要介紹了
零基础学python:魔法函数都有了解吗
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python中常見的內置類型
什么是魔法函數?
python的魔法函數總被雙下劃線包圍,它們可以給你的類增加特殊的方法。如果你的對象實現了這些方法中的一個,那么這個方法就會在特殊情況下被調用,你可以定義想要
的行為,而這一切都是自動發生的。
魔法函數一覽
魔法函數舉例
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如果不用魔法函數循環出每個員工的方法
''' 學習中遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' class Company(object):def __init__(self,employee_list):self.employee = employee_listcompany = 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)) #2for em in company1:print(em) #11,222.__len__
''' 學習中遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' 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)) #33. repr__和__str
(1.安裝交互環境(jupyter)
pip install -i https://pypi.douban.com/simple ipythonpip install -i https://pypi.douban.com/simple notebook#啟動 ipython notebook( 2.__repr__和__str__的用法
總結
以上是生活随笔為你收集整理的零基础学python:魔法函数都有了解吗的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 零基础学Python:自定义序列类的详细
- 下一篇: Python带下划线的变量或函数命名详细