在Python中从包导入类的正确方法

时间:2018-02-24 16:51:52

标签: python python-3.x

我在包a中有这样的课程:

class A:

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

在python文件中:

from a import A

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

我的定义有什么问题?我认为通过`Class.Class.method'来调用静态方法是不对的。

有错误的屏幕截图:

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

[问题用照片更新后的编辑]

因此,您的顶级应用程序称为a,您可以在"信息"下面的图片中看到这一点。在图片的左侧。然后,您有一个名为A的模块,您可以在文件夹A.py下看到文件a。此module A的{​​{1}}名为class

enter image description here

所以,当您执行A时,您要导入文件from a import A

该文件的A.py具有class A()

你说def method(p1, p2)正在运作......那就是正确

现在变成了

A.A.method()

可选地

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) 的{​​{1}}和a的{​​{1}}以及top level package的{​​{1}} < / p>