파이썬에서의 올바르게 Instance Variable 선언하기

파이썬 클래스의 멤버함수를 아래와 같이 선언하지 않습니다. 일단 샘플코드를 보실까요?

위 코드를 실행하면, 예상과는 다른 실행결과가 나옵니다. user2 의 articles 출력이 뭔가 이상하죠? ['c', 'd'] 만 나와야할터인데, ['a', 'b', 'c', 'd'] 가 나옵니다.

이는 instance variable 선언방식이 잘못 되었기 때문입니다. 위 User 클래스에서의 articles 선언은 Class Variable 입니다. Instance Variable 선언이 아닙니다. 파이썬의 Instance Variable 선언문법은 Java나 C++ 에서의 그것과 다릅니다. 다음과 같이 클래스를 변경하시면 잘 동작합니다.

이제 다시 실행해보면 다음과 같이 의도한 대로 user 에서 [‘c', ‘d'] 만 출력이 되는 것을 확인하실 수 있습니다.

다른 언어와 헷갈리지마세요. :)

AskDjango — http://facebook.com/groups/askdjango