列出 Python 模組的所有方法

Vaibhav Vaibhav 2023年1月30日 2022年5月17日
  1. 使用 dir() 方法列出 Python 模組的所有方法
  2. 使用 inspect() 模組列出 Python 模組的所有方法
列出 Python 模組的所有方法

Python 模組、包或庫是一個檔案或一組檔案,其中包含 Python 函式、Python 類和 Python 變數的定義。在 Python 中,我們可以匯入一個模組並使用它的實現來堅持電腦科學世界的兩個重要概念; 不要重新發明輪子不要重複自己

這些包或模組可以小到幾行,大到數百萬行。隨著大小的增長,分析模組或檢視包內容的清晰輪廓變得困難。但是 Python 開發人員也為我們解決了這個問題。

在 Python 中,我們可以通過多種方式列出 Python 模組的方法和類。在本文中,我們將藉助相關示例來討論兩種此類實踐。請注意,例如,我們將考慮 NumPy Python 模組。如果你的系統或虛擬環境中沒有 NumPy 軟體包,你可以使用 pip install numpypip3 install numpy 命令下載它。

使用 dir() 方法列出 Python 模組的所有方法

dir() 方法是 Python 中的內建方法。它列印物件或 Python 包的所有屬性和方法。檢查以下程式碼以瞭解它。

class A:
    a = 10
    b = 20
    c = 200
    
    def __init__(self, x):
        self.x = x
        
    def get_current_x(self):
        return self.x
        
    def set_x(self, x):
        self.x = x
        
    def __repr__(self):
        return f"X: {x}"
        
print(dir(int))
print(dir(float))
print(dir(A))

輸出:

['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
['__abs__', '__add__', '__bool__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getformat__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__int__', '__le__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rmod__', '__rmul__', '__round__', '__rpow__', '__rsub__', '__rtruediv__', '__set_format__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', 'as_integer_ratio', 'conjugate', 'fromhex', 'hex', 'imag', 'is_integer', 'real']
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'a', 'b', 'c', 'get_current_x', 'set_x']

我們可以使用 dir() 方法列出所有模組方法。請參閱以下程式碼以瞭解如何操作。

import numpy

print("NumPy Module")
print(dir(numpy))

輸出:

python 列出模組中的函式 - dir() 方法

正如我們所見,dir() 方法列出了所有 NumPy 方法。

使用 inspect() 模組列出 Python 模組的所有方法

inspect 模組是一個 Python 模組,它有幾個有用的函式來獲取有關模組、類、類物件、函式、回溯和物件的有用資訊。我們可以將此模組用於我們的簡單目的。參考以下程式碼瞭解其用法。

import numpy
from inspect import getmembers, isfunction

print("NumPy Module")
print(getmembers(numpy, isfunction))

輸出:

python 列出模組中的函式——inspect() 方法

getmembers() 函式,顧名思義,獲取存在於類或模組中的所有成員,例如方法、變數、類等。由於我們只需要方法或函式,因此我們使用了 isfunction(),這是一個 Python 函式,可以從成員中過濾掉所有函式。還有其他類似的功能,如下所示。

  • ismodule():如果物件是模組,則返回 True。
  • isclass():如果物件是一個類,則返回 True。
  • istraceback():如果物件是回溯,則返回 True。
  • isgenerator():如果物件是生成器,則返回 True。
  • iscode():如果物件是程式碼,則返回 True。
  • isframe():如果物件是框架,則返回 True。
  • isabstract():如果物件是抽象基類,則返回 True。
  • iscoroutine():如果物件是協程,則返回 True。

要了解有關此模組的更多資訊,請參閱官方文件

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

LinkedIn GitHub

相關文章 - Python Module