2017-01-06 1 views
1

이 작은 스크립트는 두 가지 기능을 가진 단일 클래스를 구현했습니다. 클래스의 외부에서 호출 할 때 두 번째 함수의 첫 번째 함수에서 찾은 값을 간단히 인쇄하려고합니다.자체를 사용할 때의 속성 오류

문제
그것은 자기 이상이 article을 읽고 나면 정말 간단한 듯하지만 시도 아무것도 작동하는 것 같다.

AttributeError: 'search' object has no attribute 'here'

질문
어떻게 내가 찾고 있어요 결과를 달성하기 위해이 스크립트를 수정할 수 있습니다 ...

class search: 
    def test(self): 
     self.here = 'hi' 
     self.gone = 'bye' 
     self.num = 12 

    def tester(self): 
     return "{}".format(self.here) 

s = search() 
s.tester() 
print (s.gone) 

반환 값 : 나는 속성 오류가 계속?

답변

2

'여기'

class search: 
    here=None 
    def __init__(self): 
    self.here='hi' 

    def test(self): 
    ... 
+0

첫 번째 함수에 할당 된 값을 유지하려고합니다. 이것은 단지 전역 변수를 null로 만들고 아무 것도 출력하지 않습니다. – ITSUUUUUH

+1

다음 생성자 __ init __을 사용하여 값을 설정하고 – Mate

+0

아, 그게 내가 찾고있는 것입니다. 죄송합니다, python을 처음 사용하셨습니다. – ITSUUUUUH

1

를 정의하는 문제는 변수를 초기화하는 기능 시험 (자신을) 실행되지 않습니다. 당신은 s.tester() 전에 s.test()를 사용하여 호출 할 수 있습니다.

+0

이것은 또한 나를 위해 일했다. 감사! – ITSUUUUUH