2017-12-21 13 views
0

정적 메서드가있는 클래스가 들어있는 Pqr.py라는 이름의 파이썬 파일이 있습니다.파이썬에서 다른 클래스의 정적 메서드 호출

import subprocess 

class Pqr: 

    @staticmethod 
    def callTheService(a,b,c): 
     subprocess.call(a,b,c) 

이제이 정적 메서드에 다른 파이썬 파일에있는 다른 클래스에서 액세스하려고합니다. 두 .py 파일은 모두 같은 디렉토리에 있습니다. 모듈 'PQR'더 속성 'callTheService'가

당신은 내가 해결하는 데 도움이 시겠어요가 없습니다 : 두 번째 파일의 코드는 내가 이것을 실행하려고하면

import Pqr 

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

, 내가 AttributeError의 오류가 발생한다 이 오류?

+0

은 파일 이름이'Pqr.py'입니까? 모듈이 아닌 * 클래스 *에 액세스해야하므로'Pqr.Pqr.callTheService'를 사용하십시오. 파이썬에서는 일반적으로 모듈에 클래스와 동일한 이름을 부여하지 않습니다 (Python! = Java). BTW, 이것은 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