在python中从其他类调用静态方法

在python中从其他类调用静态方法,python,static-methods,attributeerror,Python,Static Methods,Attributeerror,我有一个名为Pqr.py的python文件,其中包含一个持有静态方法的类 import subprocess class Pqr: @staticmethod def callTheService(a,b,c): subprocess.call(a,b,c) 现在我试图从另一个python文件中的类访问这个静态方法。两个.py文件位于同一目录中。第二个文件中的代码是 import Pqr class Rst: Pqr.callTheService("

我有一个名为Pqr.py的python文件,其中包含一个持有静态方法的类

import subprocess

class Pqr:

    @staticmethod
    def callTheService(a,b,c):
       subprocess.call(a,b,c)
现在我试图从另一个python文件中的类访问这个静态方法。两个.py文件位于同一目录中。第二个文件中的代码是

import Pqr

class Rst:
    Pqr.callTheService("a", "b", "c")
当我尝试运行此操作时,得到一个错误AttributeError:module'Pqr'没有属性'callTheService'


你能帮我解决这个错误吗?

我在阅读评论时解决了这个问题。我在模块中导入了类。下面是示例工作代码

from Pqr import Pqr

class Rst:
    Pqr.callTheService("a", "b", "c")

您的文件名为
Pqr.py
?您需要访问类而不是模块,因此使用
Pqr.Pqr.callTheService
。在python中,通常不会为模块指定与类相同的名称(python!=Java)。顺便说一句,如果您遵循Python命名约定,这一点会更加明显。通常,您使用
lower_case
作为模块名称,并不惜一切代价避免使用
camelCase
!这是到.Wow,@juanpa.arrivillaga的链接,你在几分钟内就解决了我的问题!非常感谢。@Hannu我的意思是,它可能是一个静态方法,为什么它应该是一个类方法呢?更可能的是,它应该只是一个模块级函数。因此,在这里使用类毫无意义,但我假设
Pqr
应该是一个类,这是一个玩具示例。您可能应该重命名您的模块。我不确定你说的“我导入了文件而不是整个模块”是什么意思,但听起来不正确。@juanpa.arrivillaga抱歉,我是Python新手,现在正在浏览你与我共享的文档。