Python에는 다음과 같은 클래스가 있습니다.
class SDK(object):
URL = 'http://example.com'
def checkUrl(self, url):
#some code
class api:
def innerMethod(self, url):
data = self.checkUrl(url)
#rest of code
하지만 api에서 checkUrl에 액세스하려고하면 오류가 발생합니다. 다음과 같이 중첩 된 메서드를 호출하려고합니다.
sdk = SDK()
sdk.api.innerMethod('http://stackoverflow.com')
내부 클래스 메서드를 호출하거나 메서드를 내부 개체로 구조화하는 간단한 방법이 있습니까? 어떤 제안이라도 감사하겠습니다.
편집 : 수업 코드 :
class SDK(object):
def run(self, method, *param):
pass
class api:
def checkDomain(self, domain):
json = self.run('check', domain)
return json
실행 코드 :
sdk = SDK()
result = sdk.api().checkDomain('stackoverflow.com')
이 SDK
클래스는 api
예제 에서 클래스 의 부모가 아닙니다. 즉 , api
에서 상속하지 않으며 SDK
단순히 중첩됩니다.
따라서 메서드 의 self
개체 api.innerMethod
는 api
클래스 의 인스턴스 일 뿐이며 클래스의 메서드에 대한 액세스를 제공하지 않습니다 SDK
.
객체 지향 프로그래밍 개념에 대해 더 많이 알고 여기서 문제가 무엇인지 파악하는 것이 좋습니다. 그것은 당신을 엄청나게 도울 것입니다.
모듈을 사용하여 이러한 라인을 따라 무언가를 달성하는 경우, 예를 들어 SDK
클래스의 모든 것을 모듈 인 sdk.py
파일로 가져올 수 있습니다 sdk
.
sdk.py :
URL = 'http://example.com'
def checkUrl(url):
#some code
class api:
def innerMethod(self, url):
data = checkUrl(url)
#rest of code
main.py :
import sdk
api = sdk.api()
api.innerMethod('http://stackoverflow.com')
또는 더 나아가서 그 안에 모듈이있는 sdk
패키지로 변환 할 api
수 있습니다.
모듈 및 패키지 사용 방법에 대한 자세한 내용 은 https://docs.python.org/2/tutorial/modules.html 을 참조 하십시오 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다