如何將 python py 文件中的所有類導入另一個 py 文件中的另一個類?


文件樹:

\
├── main.py
├── 類.py

classes.py

  • 我在這個文件中定義了 3 個類
class clsA:
    名稱=“clsA”
類 clsB:
    名稱=“clsB”
類 clsC:
    名稱=“clsC”

main.py

  • 我的目的是將 classes.py 中的所有類導入到類 main.classlist 中,但我不想在代碼中顯式枚舉所有這些類名稱。
類類列表:

    # 從類中導入 clsA、clsB、clsC
    ## ^ 上面的行可以工作,但需要明確列出所有這些類名稱

    從類導入 *
    ## ^ 上面的行不起作用:SyntaxError: import * only allowed at module level


打印(classlist.clsA.name)
# 預期打印出“clsA”

那麼有沒有簡單的方法我可以在 main.classlist 中導入 classes.py 中的所有類而不顯式列出它們?

或者是否有一種簡單的方法可以將 classes.py 中的所有類名列出到 [list] 中,然後嘗試將該列表導入 main。類列表?

順便說一句,python 3.8+

謝謝。

您需要在同一目錄下創建一個__init__.py文件,並在其中添加以下代碼:

init.py

__all__ = ['classes']

main.py 你只需要導入類。

ma​​in.py

導入類


班級名單:
    經過


打印(classes.clsA.name)
打印(classes.clsB)

注意:在 python 中,類名是用 CamelCase 約定 編寫的,如 ClassList