2017-12-21 21 views
0

静的メソッドを持つクラスを含むPqr.pyという名前のPythonファイルがあります。他のクラスの静的メソッドを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のエラーが出ます:モジュール「PQR」には属性を持っていない「callTheService」

あなたは私が解決するのに役立つてもらえこのエラー?

+0

は「Pqr.py」という名前のファイルですか?モジュールではなく*クラス*にアクセスする必要があるので、 'Pqr.Pqr.callTheService'を使用してください。 Pythonでは、通常、モジュールにクラスと同じ名前を付けません(Python!= Java)。ところで、Pythonの命名規則に従えば、これはもっと明らかです。一般的に、モジュール名には 'lower_case'を使い、' camelCase'は絶対に避けてください! –

+0

[Style Guide for Python Code](https://www.python.org/dev/peps/pep-0008/)へのリンクです。 – Matthias

+0

うわー、@ juanpa.arrivillagaあなたは数分で私の問題を解決!ありがとう、トン。 – swarupmishal

答えて

0

私はこの問題を解読しました。モジュール内でクラスをインポートしました。ここにサンプルの作業コードがあります。

from Pqr import Pqr 

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

モジュールの名前を変更してください。 「モジュール全体ではなくファイルをインポートした」という内容がわかりませんが、正しいとは言えません。 –

+0

@ juanpa.arrivillaga申し訳ありません私はPythonを初めて使いました。 – swarupmishal

関連する問題