2017-12-07 9 views
-1

일부 변수가 ___init____에 설정되어있는 클래스를 만들었으므로 해당 클래스의 메소드에서이 변수를 변경할 수 있기를 원합니다.클래스의 메소드에서 인스턴스 변수를 변경하십시오.

class example_class: 

    def __init__(self, variable): 
     self.thing = 'variable' 

    def example_method(self): 
     self.thing = 'changed text' 

    def different_method(self): 
     print(self.thing) 

그래서 "example_method"를 호출하기 전에 self.thing의 값은 문자열 '변수'다음 지금 self.thing 방법 "example_method"를 일치 한 호출 한 후 '변경 텍스트'입니다. 이 작업은 가능해야하지만 수행 방법을 이해할 수 없습니다.

+0

당신이 실제로 구현으로 어떤 문제를보고있다 : 당신은 또한 같은 뭔가를 할 수

? – khelwood

+0

메소드 example_method를 실행 한 후 self.thing의 값은 원래 'variable'인데 'changed text'로 변경되지 않았습니다. – tombat7112

답변

0

클래스에 정의 된 메서드를 호출해야합니다. 이런 식으로

class example_class: 

    def __init__(self, variable): 
     self.thing = 'variable' 
     self.example_method() 

    def example_method(self): 
     self.thing = 'changed text' 

    def different_method(self): 

, 당신이 얻을 때/클래스 "example_class"의 인스턴스를 생성하는 방법은 "example_method"생성자에서 호출됩니다.

if __name__ == '__main__': 
    my_class = example_class() 
    my_class.example_method() 
+0

내 게시물의 코드는 아니지만 메소드 I을 호출합니다. 그냥 init에서 호출하고 싶지는 않습니다. 클래스의 인스턴스를 만들고 나중에 "self_thing"변수를 변경하기 위해 "example_method"를 호출 할 수 있습니다. – tombat7112

+0

그렇지 않으면 __init__ 메소드 내에서 메소드를 호출 할 필요가 없습니다. 그러나 이전 게시물에서 말했듯이 마지막 3 행의 코드와 비슷한 것을 원합니다. 해당 클래스의 인스턴스가 필요하고 원하는 메서드를 쉽게 호출 할 수 있습니다. – Paradisee

+0

예 클래스의 인스턴스를 만든 다음 메서드를 호출했지만 여전히 문자열이 변경되지 않습니다 – tombat7112