2011-01-01 5 views

답변

7

차이점은 한 사례에서 인스턴스를 보유하는 변수를 self이라고하고 다른 경우에 object이라고했습니다. 그것은 유일한 차이점입니다.

self 변수는 Python에서 명시 적이며 원하는대로 호출 할 수 있습니다. self은 모두 가독성을 위해 사용하는 규칙입니다.

>>> class Foo(object): 
... def __init__(bippity, colour): 
...  bippity.colour = colour 
... def get_colour(_): 
...  return _.colour 
... 
>>> f = Foo('Blue') 
>>> f.get_colour() 
'Blue' 

을하지만 굉장히 혼란 : 예를 들어

이 잘 작동합니다. :)

2

이것은 말과 같습니다.

class Foo(object): 
    def __init__(self): 
     self.a="foo" 
    def __repr__(bar): 
     return bar.a 

변수 이름 bar는 아무런 의미가 없습니다. 이는 단지 self에 대한 참조 일뿐입니다.

2

다른 사람들도 지적했듯이 클래스 메서드의 첫 번째 매개 변수 이름은 단순히 규칙 일 뿐이며 원하는 이름을 지정할 수 있습니다. 하지만은 사용하지 마십시오. 항상 self으로 이름을 지정하십시오. 그렇지 않으면 모든 사람을 혼란스럽게 할 수 있습니다. 특히, 예를 들어 object이라는 이름을 붙이면 내장 이름이 모호 해지고 이중 이름이 잘못되었습니다.

관련 문제