2009-02-03 3 views
4

파이썬에서 클래스 함수의 자체 참조에 값을 전달하는 이유는 무엇입니까? 예 :Python의 클래스 함수에 자체 전달하기

class MyClass: 
    """A simple example class""" 
    i = 12345 
    def f(**self**): 
     return 'hello world' 

이렇게하면 컴파일러의 작업을 수행하지 않습니까?

+0

이것은 매우 정기적으로 요청됩니다. http://stackoverflow.com/questions/68282/why-do-you-need-explicitly-have-the-self-argument-into-a-python-method – Dana

+0

감사합니다. 피난처 그것을 보지 못했습니다. –

답변

9

많은 전자가 지난 몇 년 동안이 문제를 논의에 자신의 삶을 주었다.

Guido (python의 창시자)는 자신의 블로그 here에서 지난해 proposal에 대한 응답으로이 문제에 무게를 두었습니다. 파이썬 FAQ도 covers the issue입니다.

마지막으로, 약간의 회색 마법을 신경 쓰지 않는다면 use a metaclass to get rid of it 수 있습니다. 왜 그렇게하면 안되는 좋은 이유가 있지만 속성을 깨뜨리면 다른 사람들의 코드를 이해하기가 더 어려워지며 코드를 보는 다른 파이썬 프로그래머에게 혼동을 줄 수 있습니다.

관련 문제