Python @classmethod, @staticmethod 차이점
2021. 7. 10. 17:34ㆍPython
차이점은 부모 클래스에게서 상속 받을때 나타난다.
1. classmethod는 해당cls를 받아 값이 변경이되어 사용하고
2. staticmethod는 부모의 속성을 값을 그대로 받아 사용한다.
예시
class checkMethod(object):
checkWord = '안녕하세요!'
def __init__(self):
self.greetings = '파이썬!' + self.checkWord
@classmethod
def classMode(cls):
return cls()
@staticmethod
def staticMode():
return checkMethod()
def printWord(self):
print(self.greetings)
class answer(checkMethod):
checkWord = '잘가세요!'
from test import answer
a = answer.classMode()
b = answer.staticMode()
a.printWord()
b.printWord()
결과
classmethod는 잘가세요로 변경이되고
staticmethod는 안녕하세요로 변경이 되지 않은 걸 볼 수 있다
728x90
반응형
'Python' 카테고리의 다른 글
python 해당 값 찾기 in 연산자 (0) | 2021.07.09 |
---|---|
string 자료형 문장부호 없애는 방법 string.puctuation (0) | 2021.07.09 |
cp949' codec can't decode byte 0xec in position 84: illegal multibyte sequence 오류 해결 json파일 가져올때 (0) | 2021.06.30 |
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe2 in position 14: invalid continuation byte 해결 방법 (0) | 2021.05.14 |
SyntaxError: Non-ASCII character 에러 해결 (0) | 2021.05.14 |