[英]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.