파이썬에서 내가 해결할 수없는 재미있는 상황이 발생했습니다. 나는 def a(self, x, y):
과 같은 클래스 내에서 정의를 가지고 있으며 a(par1, par2)
과 같은 다른 곳에서 호출되었습니다. 그러나 self
대신 par1
이 대체되고 x
대신 par2
이되고 y
은 초기화되지 않은 상태로 유지됩니다. 그러나 그 경우가 아니어야합니다 : x
과 y
대신에 par1
과 par2
이 있어야하고 파이썬은 self
이 있어야합니다. 이것은 Python 2.7에서 올바르게 작동하지만이 재미있는 일은 3.2에서 발생합니다. 메서드 a에는 어떤 수식어도 없지만 호출하는 메서드는 @classmethod
수식 자입니다. 조금 이상합니다. @classmethod가 세 번째 버전에서 변경되었을 수도 있습니다. 아무도 무슨 일이 일어나고 있는지, 올바르게 작동하게 만드는 방법을 알고 있다면 알려주십시오.파이썬은 매개 변수 중 하나를 자체로 대체합니다.
감사합니다. 나는이 비슷한 코드를 추측하고있어 당신의 묘사에서
당신은 ' .a (par1, par2)'와 같이'a'를 호출해야합니까? –
ajwood
코드의 전체 예제를 보여줄 수 있습니까? – SingleNegationElimination
행동의 완전한 실행 가능한 예를 제공 할 수 있습니까? – Kevin