• <em id="ommgs"></em>
    <dd id="ommgs"><center id="ommgs"></center></dd>

    1. <em id="ommgs"><acronym id="ommgs"><u id="ommgs"></u></acronym></em>
      首 頁IT知識庫翔宇問吧收藏內容
      當前位置:翔宇亭IT樂園IT知識庫Python

      Python callable()函數

      減小字體 增大字體 作者:本站  來源:本站整理  發布時間:2021-08-13 08:31:47

      callable()函數是Python的一個內置函數。該函數判斷一個對象是否可被調用,如果傳遞給該函數的對象可被調用,則返回True,否則返回False。在實際中,即使該函數返回True,也有可能在調用該對象時會失敗,當然,若該函數返回的是False,在調用該對象時絕對不會成功。

      在Python類中如果定義了__call__()方法,則該類的實例是可調用的。

      通俗地講,一般情況下用戶定義的方法/函數是可以調用的,但類的實例一般不能按照方法/函數的形式來調用,但如果類的內部實現了__call__()方法,則該類的實例可以按照方法/函數的形式來調用。

      注意:callable()函數在Python 3.0版本中被移除,又再3.2版本中重新添加了回來。

      callable()函數語法格式

      callable(object)

      參數

      object:要判斷的對象或實例。

      返回值

      該函數的返回值是一個布爾值:TrueFalse.

      Python callable()函數

      下面使用幾個實例來講解callable()方法的具體使用方法。

      1、返回值為True的情況

      #函數
      def fun():
          print("調用fun()函數")

      #創建一個對象
      fun1 = fun

      class test:
          def __call__(self, *args, **kwargs):
              print("定義了__call__()方法")

      #創建類的實例
      test_obj = test()

      print("fun is callable?",callable(fun))
      print("fun1 is callable? ",callable(fun1))
      print("test is callable? ",callable(test))
      print("test_obj is callable? ",callable(test_obj))

      #調用試試
      fun()
      fun1()
      test()
      test_obj()

      輸出結果:

      fun is callable? True
      fun1 is callable? True
      test is callable? True
      test_obj is callable? True
      調用fun()函數
      調用fun()函數
      定義了__call__()方法

      在上面的例子中,我們首先定義了一個函數fun(),然后定義了fun()函數的一個引用對象fun1;其次定義了一個類Test和類的一個實例test_obj,在類Test中實現了__call__()函數;最后測試函數fun()、函數的引用fun1、類和類的對象test_obj的可調用性。從結果可以看出四個對象的callable()函數返回值都是True,并且調用都獲得了成功。

      一般情況,在對象的可訪問范圍內,類和方法/函數本身總是可以調用的,但類的實例在未定義__call__()函數時則不能被調用。

      2、返回值為False的情況

      下面的例子演示了callable()函數返回False的幾種情況:

      n = 123
      s = 'biye5u.com'
      lst = ['R', 'Python', 'SPSS']
      t = ('優雅的代碼訂閱號','翔宇亭')
      d ={'K1':'V1','K2':'V2'}

      class Student:
          sid = 0
          def __init__(self,sid):
              self.sid = sid

      stu = Student('001')

      print("n is callable?", callable(n))
      print("s is callable?", callable(s))
      print('列表對象可調用?', callable(lst))
      print('元組對象可調用?', callable(t))
      print('字典對象可調用?', callable(d))
      print('stu is callable?', callable(stu))

      輸出結果如下:

      n is callable? False
      s is callable? False
      列表對象可調用? False
      元組對象可調用? False
      字典對象可調用? False
      stu is callable? False

      從上面的例子中可以得出:數值變量、列表對象、元組對象、字典對象等是不可調用的,這顯而易見,且這種調用也沒有實際意義的;類中未實現__call__()方法,類的實例也是不能調用的。

      總結

      callable()方法主要在程序中調用某個對象時而預防出錯設置的函數。用戶在調用某個對象前,預先使用callable()方法判斷其可調用性而避免出現TypeError錯誤。


      如需轉載請注明出處:翔宇亭IT樂園(http://www.dgmtwj.com),并給出本文鏈接地址:

      http://www.dgmtwj.com/article/python/2021/6535.html

      微信搜索“優雅的代碼”關注本站的公眾號,或直接使用微信掃描下面二維碼關注本站公眾號,以獲取最新內容。

      個人成長離不開各位的關注,你的關注就是我繼續前行的動力。

      知識評論評論內容只代表網友觀點,與本站立場無關!

         評論摘要(共 0 條,得分 0 分,平均 0 分) 查看完整評論
      愿您的精彩評論引起共鳴,帶來思考和價值。
      用戶名: 查看更多評論
      分 值:100分 90分 80分 70分 60分 40分 20分
      內 容:
      驗證碼:
      關于本站 | 網站幫助 | 廣告合作 | 網站聲明 | 友情連接 | 網站地圖
      本站部分內容來自互聯網,如有侵權,請來信告之,謝謝!
      Copyright © 2007-2021 biye5u.com. All Rights Reserved.
      japanese日本熟妇photo