2014-05-22 3 views
0

클래스 MyClass 내에서 메서드를 호출하고 그 값을 반환하려고합니다.클래스 Python 내에서 Execute 메서드

class MyClass: 
    def __init__(self): 
     print " Class Initialized" 

    def gather_path(self): 
     self.tld_object = Tld.objects.get(id=3,FKToClient=User.pk) 
     return self.tld_object 

어떻게 파이썬 intrepreter 내 클래스를 가져 self.tld_object의 값을 반환 않습니다.

내가 좋아하는 가져 해요 :

내가 아는
from MyApp.MyClass import gather_path() 

, 이것은 아주 기본적인 - 내가 파이썬에서 OOP 비교적 새로운 해요.

어떻게이 방법을 호출하여 self.tld_object의 값을 gather_path() 방법으로 반환 할 수 있습니까?

+0

왜 수업이 있습니까? 모듈 레벨 함수'gather_path'를 만들지 않겠습니까? – mgilson

+0

클래스에 gather_ 과 같은 다른 메소드가 있습니다. gather_path()에서 반환 값을 사용하려고 구체적으로 시도하고 있습니다. – CodeTalk

+0

'MyApp.MyClass import gather_path()'가 유효하지 않은 구문입니까? – 2rs2ts

답변

4

그것은 당신이 뭘 하려는지에 따라 다르지만 일반적으로, 당신의 클래스를 가져 오는 코드는 다음과 같이 것이라고 생각 :

from MyApp import MyClass 

my_instance = MyClass() 
value = my_instance.gather_path() 

value 변수가 지금 tld_object의 값이 포함됩니다.

get_path()을 호출하기 위해 MyClass을 인스턴스화하지 않으려면 get_path()class or static method으로 설정해야합니다.

예를 들어, self.tld_object를 설정해야하는 것은 분명하지 않습니다. 다른 메소드가 해당 상태에서 의존하지 않는 한 gather_path()에서 반환하기 때문에 self.tld_object를 설정해야합니다. 그래도 아무 것도 설정하지 않은 경우에도 __init__에 신고하는 것이 더 좋습니다. MyClass의 모든 인스턴스가 tld_object의 동일한 값을 사용하려는 경우 또는, 당신은 클래스 변수를 만들 수있는, 그냥 같은, 어떤 방법 이외의 선언 :

class MyClass: 
    tld_object = Tld.objects.get(id=3,FKToClient=User.pk) 

    def gather_path(self): 
     return self.tld_object 

를 확실하지 그 얼마나 귀하의 요구와 관련이 있기 때문에, 주어진 예제에서 알기가 약간 어렵습니다. 하여 다른 모듈에서 다음은 클래스 외부에서 tld_object에 도달해야하는 경우

class MyClass: 
    def __init__(self): 
     self.tld_object = Tld.objects.get(id=3,FKToClient=User.pk) 
     # Maybe raise an exception or something if self.tld_object doesn't get set right 

    # Example of how to access tld_object from another method 
    def print_tld_object(self): 
     print self.tld_object 

, 당신은 할 것 :이 (지금까지 말한 것을 제공) 작성한다면, 나는 다음을 수행 할 것 :

from MyApp import MyClass 

my_instance = MyClass() 
tld = my_instance.tld_object 
+0

어떻게이 값을 리턴 할 수 있습니까? 결국 "반환 가치"가 필요하지 않습니까? – CodeTalk

+0

자, 필요에 따라 gather_path()를 호출 한 후에 my_instance.tld_object에 액세스 할 수 있습니다. – Nacho

+0

내가하려고하는 것은 self.tld_object의 값을 사용하는 newmethod라는 다른 메서드 내에서 self.tld_object의 값을 사용하는 것입니다. 무엇이 가장 좋은 방법입니까? – CodeTalk

관련 문제