while True:
print "\n--------"
room = getattr(self, next)
next = room()
내 질문 Learn Python The Hard Way에서 발견 된 위의 코드 블록에서 유래한다. 나는 (...? 내가 거기 틀렸다하지 않는 한) 세 번째 줄은 room
변수로 (이 경우, self.next
단위) getattr()
기능의 결과를 저장하는 것을 이해: - <a href="http://learnpythonthehardway.org/book/ex43.html" rel="nofollow">Exercise 43</a> 운동 43 기능 만들기
지금 나를 매달려 네 번째 줄입니다 무엇, 함수 room()
은 변수 next
에 저장됩니다. 근본적으로, 나는 이것이 코드 블록에서 정의 된 함수가 아니기 때문에 room()
부분을 이해하지 못한다. 파이썬은 사용자가 앞의 변수를 기반으로 함수를 정의 할 수있게합니까? (예 : 처음으로 room()
을 쓰면 변수 room
에 저장된 내용을 기반으로 room()
이라는 함수가 만들어집니다.
도움이 될 것입니다.
감사하고 지우기 :
는 다음과 같은 고려하십시오. 나는 gettr()이 함수를 반환하고 그것들을 저장할 수 있다는 것을 이해한다. 그러나 위의 코드에서 함수가 호출되지 않았습니까? 제가 물어 본 이유는 예제 43에서 코드화 된 스토리/게임의 다음 단계가 인쇄되기 때문입니다. 코드를 보면 프로그램이 play()에서 central_corridor()로 어떻게 이동합니까? 필자는 play()가 제공하는 대신 self.central_corridor()를 호출하여 코드를 통해 호출되는 함수를 보는데 익숙합니다.이 함수는 호출되는 것과는 반대로 저장되는 함수로 나타납니다. –
위의 질문을 명확히하기 위해서 : next = room()은 room() 함수를 실행하고 결과를 다음 변수에 저장합니까? –
네, 그런 일이 정확히 일어나고 있습니다. – Aesthete