Python中有趣在__call__函數(shù)
Python中有一個(gè)有趣的語(yǔ)法,只要定義類(lèi)型的時(shí)候,實(shí)現(xiàn)__call__函數(shù),這個(gè)類(lèi)型就成為可調(diào)用的。
換句話說(shuō),我們可以把這個(gè)類(lèi)型的對(duì)象當(dāng)作函數(shù)來(lái)使用,相當(dāng)于 重載了括號(hào)運(yùn)算符。
class g_dpm(object): def __init__(self, g): self.g = g def __call__(self, t): return (self.g*t**2)/2
計(jì)算地球場(chǎng)景的時(shí)候,我們就可以令e_dpm = g_dpm(9.8),s = e_dpm(t)。
class Animal(object): def __init__(self, name, legs): self.name = name self.legs = legs self.stomach = [] def __call__(self,food): self.stomach.append(food) def poop(self): if len(self.stomach) > 0: return self.stomach.pop(0) def __str__(self): return 'A animal named %s' % (self.name) cow = Animal('king', 4) #We make a cow dog = Animal('flopp', 4) #We can make many animals print 'We have 2 animales a cow name %s and dog named %s,both have %s legs' % (cow.name, dog.name, cow.legs) print cow #here __str__ metod work #We give food to cow cow('gras') print cow.stomach #We give food to dog dog('bone') dog('beef') print dog.stomach #What comes inn most come out print cow.poop() print cow.stomach #Empty stomach '''-->output We have 2 animales a cow name king and dog named flopp,both have 4 legs A animal named king ['gras'] ['bone', 'beef'] gras [] '''
相關(guān)文章
處理python中多線程與多進(jìn)程中的數(shù)據(jù)共享問(wèn)題
這篇文章主要介紹了python中多線程與多進(jìn)程中的數(shù)據(jù)共享問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07基于python進(jìn)行抽樣分布描述及實(shí)踐詳解
這篇文章主要介紹了基于python進(jìn)行抽樣分布描述及實(shí)踐詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09Pythony運(yùn)維入門(mén)之Socket網(wǎng)絡(luò)編程詳解
這篇文章主要介紹了Pythony運(yùn)維入門(mén)之Socket網(wǎng)絡(luò)編程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Python編寫(xiě)簡(jiǎn)單的HTML頁(yè)面合并腳本
這篇文章主要介紹了Python編寫(xiě)簡(jiǎn)單的HTML頁(yè)面合并腳本的相關(guān)資料,需要的朋友可以參考下2016-07-07python實(shí)現(xiàn)帶驗(yàn)證碼網(wǎng)站的自動(dòng)登陸實(shí)現(xiàn)代碼
本例所登錄的某網(wǎng)站需要提供用戶名,密碼和驗(yàn)證碼,在此使用了python的urllib2直接登錄網(wǎng)站并處理網(wǎng)站的Cookie2015-01-01利用Python實(shí)時(shí)獲取steam特惠游戲數(shù)據(jù)
Steam是由美國(guó)電子游戲商Valve于2003年9月12日推出的數(shù)字發(fā)行平臺(tái),被認(rèn)為是計(jì)算機(jī)游戲界最大的數(shù)碼發(fā)行平臺(tái)之一。本文將利用Python實(shí)時(shí)獲取steam特惠游戲數(shù)據(jù),感興趣的可以嘗試一下2022-06-06python使用matplotlib畫(huà)出的圖怎樣放到word中
這篇文章主要介紹了python使用matplotlib畫(huà)出的圖怎樣放到word中問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09Opencv實(shí)現(xiàn)二維直方圖的計(jì)算及繪制
這篇博客將介紹如何使用Opencv進(jìn)行二維直方圖的計(jì)算及繪制,維直方圖可以讓我們對(duì)不同的像素密度有更好的了解,感興趣的可以了解一下2021-07-07