[Python] classmethod 와 staticmethod
2016. 11. 16. 12:41ㆍ프로그래밍/Python & dJango
Classmethod & Staticmethod
파이썬에서 제공되는 decorator @classemthod @staticmethod 를 사용하여 구현한다.
1. Classmethod
- classemethod 는 인자로 class가 반드시 선언되어야 한다.
- 만약 class 내부 값을 변경할 경우 class 내부의 값이 변경된다.
example)
class NormalClass(object): '@classmethod def class_set(cls, txt): cls.txt = txt class NormalClass2(NormalClass): print "----------NormalClass2---------" NormalClass.class_set('hello') NormalClass2.class_set('world') print NormalClass.txt print NormalClass2.txt
result)
----------NormalClass2---------
hello
world
위의 결과를 보면 각각의 클레스의 txt값이 변경되었다.
2. Staticmethod
- static method 는 classmethod와 다르게 static 영역이 존재하며, 만약 이 데이터를 수정할 경우 영역안의 값이 변경된다.
example)
class NormalClass(object): '@staticmethod def static_set(txt): NormalClass.txt = txt class NormalClass2(NormalClass): print "----------NormalClass2---------" NormalClass.static_set('hello') NormalClass2.static_set('world') print NormalClass.txt print NormalClass2.txt
result)
----------NormalClass2---------
world
world
staticmethod를 사용하면 static 영역안의 값이 변경이 되는 것을 볼 수 있다.
'프로그래밍 > Python & dJango' 카테고리의 다른 글
Python - Elastic Search Service [6.x] 생성, 조회, 삭제 (0) | 2018.10.05 |
---|---|
[django] 리스트 순번 (0) | 2016.10.23 |
[Python] 집합 (set) (0) | 2016.10.19 |
[django] convert integer to string (0) | 2016.10.19 |
[dJango] Q expression (0) | 2016.10.19 |