簡體   English   中英

在 Python 中從包中導入類的正確方法

[英]Correct way to import a class from a package in Python

我在包a有一個這樣的類:

class A:

      @staticmethod
      def method(param1, param2):
          ...
          return something

在一個 python 文件中:

from a import A

print(A.A.method(p1,p2))

我的定義有什么問題? 我認為通過 Class.Class.method 調用靜態方法是不正確的。

有錯誤的截圖:

在此處輸入圖片說明

在此處輸入圖片說明

[問題更新后編輯圖片]

因此,您的頂級應用程序稱為a您可以在圖片左側“信息”下方的圖片中看到這一點。 然后你有一個名為A的模塊,你可以在文件夾a下看到文件A.py 這個module A有一個叫做Aclass

在此處輸入圖片說明

因此,當您from a import A執行操作時from a import A您正在導入文件A.py

該文件有一個class A()def method(p1, p2)

你說AAmethod()正在工作......這是正確的

現在變成

from a import A
print(A.A.method(p1,p2)

或者

import a
print(a.A.A.method(p1,p2)

或者

from a.A import A
print(A.method(p1, p2)

我的建議是:開始使用一些更具描述性的名稱,而不是a用於top level packageA用於moduleA用於class

暫無
暫無

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

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