>>f=abs>>>f.__name__'abs'>>>f(-123)由于f可以被調(diào)用,所以,f被稱為可調(diào)用對(duì)象。所有的函數(shù)都是可調(diào)用對(duì)象。一個(gè)類實(shí)例也可以變成一個(gè)可調(diào)用對(duì)象,只需要實(shí)現(xiàn)一個(gè)特殊方法__call__()。我們把Person類變成一個(gè)可調(diào)用對(duì)象:classPerson(object):def__init__(self,name,gender):self.name=nameself.gen" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

對(duì)python特殊函數(shù) __call__()的使用詳解

系統(tǒng) 1710 0

__call__

在Python中,函數(shù)其實(shí)是一個(gè)對(duì)象:

            
>>> f = abs
>>> f.__name__
'abs'
>>> f(-123)
          

由于 f 可以被調(diào)用,所以,f 被稱為可調(diào)用對(duì)象。

所有的函數(shù)都是可調(diào)用對(duì)象。

一個(gè)類實(shí)例也可以變成一個(gè)可調(diào)用對(duì)象,只需要實(shí)現(xiàn)一個(gè)特殊方法__call__()。

我們把 Person 類變成一個(gè)可調(diào)用對(duì)象:

            
class Person(object):
  def __init__(self, name, gender):
    self.name = name
    self.gender = gender

  def __call__(self, friend):
    print 'My name is %s...' % self.name
    print 'My friend is %s...' % friend

          

現(xiàn)在可以對(duì) Person 實(shí)例直接調(diào)用:

            
>>> p = Person('Bob', 'male')
>>> p('Tim')
My name is Bob...
My friend is Tim...
          

單看 p('Tim') 你無(wú)法確定 p 是一個(gè)函數(shù)還是一個(gè)類實(shí)例,所以,在Python中,函數(shù)也是對(duì)象,對(duì)象和函數(shù)的區(qū)別并不顯著。

任務(wù)

改進(jìn)一下前面定義的斐波那契數(shù)列:

            
class Fib(object):
  ???
          

請(qǐng)加一個(gè)__call__方法,讓調(diào)用更簡(jiǎn)單:

            
>>> f = Fib()
>>> print f(10)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
          

可以把實(shí)例對(duì)象用類似函數(shù)的形式表示,進(jìn)一步模糊了函數(shù)和對(duì)象之間的概念

            
class Fib(object):
  def __init__(self):
    pass
  def __call__(self,num):
    a,b = 0,1;
    self.l=[]
    
    for i in range (num):
      self.l.append(a)
      a,b= b,a+b
    return self.l
  def __str__(self):
    return str(self.l)
  __rept__=__str__
      
f = Fib()
print f(10)
          

以上這篇對(duì)python特殊函數(shù) __call__()的使用詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久综合狠狠综合久久综合88 | 国产激情一区二区三区成人91 | 青青青视频自偷自拍视频1 青青青手机版视频在线观看 | 黄色影院在线观看 | 国产成人精品区在线观看 | 婷婷色在线播放 | 羞羞视频免费网站在线 | 中文字幕日韩哦哦哦 | 亚洲精品国产第一区二区尤物 | 精品哟哟国产在线观看 | 欧美日本黄色 | 91久久精品午夜一区二区 | 久久奇米| 天天射天天做 | 天天噜夜夜操 | 狠狠躁夜夜躁人人爽天天3 狠狠躁夜夜躁人人爽天天miya | 极品女神西比尔久久精品 | 99国产精品热久久久久久 | 久久久久久久久免费影院 | 色综合亚洲天天综合网站 | 色婷婷99综合久久久精品 | 日本工番囗番全彩本子大全 | 亚洲精品中文字幕乱码一区二区 | 久久只有精品 | 欧美中文字幕在线视频 | 在线观看91精品国产不卡免费 | 久草小视频 | 免费香蕉一区二区在线观看 | 亚洲成人第一页 | 在哪里可以看毛片 | 国产精品久久久久一区二区 | 成人在线免费视频播放 | 伊人成综合 | 天天操天天摸天天舔 | 久久青青草原精品影院 | xxxxxx国产精品视频 | 中国在线播放精品区 | www.亚洲| 久久精品国产亚洲网址 | 全黄冷激性性视频 | 国产福利午夜波多野结衣 |