簡體   English   中英

如何在Python 3中動態調用諸如__doc__之類的內置方法?

[英]How can I dynamically call built in methods such as __doc__ in Python 3?

__doc__ Python,正在打印各種內置Python方法的__doc__ 然后,我嘗試執行以下操作:

for f in dir(__builtins__):
    print('********' + f + '********\n', f.__doc__)

當結果如下所示時,我感到很驚訝:

********abs********
    str(object='') -> str
    str(bytes_or_buffer[, encoding[, errors]]) -> str
********all********
    str(object='') -> str
    str(bytes_or_buffer[, encoding[, errors]]) -> str
********any********
    str(object='') -> str
    str(bytes_or_buffer[, encoding[, errors]]) -> str
********ascii********
    str(object='') -> str
    str(bytes_or_buffer[, encoding[, errors]]) -> str

經過研究后,我發現了這一點 ,但是我仍然看不到我該怎么做。 我知道這毫無意義,但是我覺得了解如何動態執行類似於Python的任務對我很有用。

感謝您的幫助!

dir(__builtins__) (也在模塊上迭代)給出模塊中的名稱,以獲取必須使用getattr的對象:

for f in dir(__builtins__):
    print('********' + f + '********\n', getattr(__builtins__, f).__doc__)

for循環中,調用時未獲得實際的功能/方法

for f in dir(__builtins__):

相反,每次f只是一個帶有函數/方法名稱的字符串。 因此,當您致電:

f.__doc__

您總是會找回str類型的文檔str 它與調用沒有什么不同:

'abc'.__doc__

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM