티스토리 뷰
[정적메소드]
- 정적메소드는 클래스에서 직접 접근할 수 있는 메소드
- 파이썬에서는 클래스에서 직접 접근할 수 있는 메소드가 두가지가 있다.
(staticmethod, classmethod)
- 파이썬에서는 정적메소드임에도 불구하고 인스턴스에서도 접근 가능!
- 인스턴스 메소드는 첫번쨰 인자로 인스턴스 자기 자신 self 를 입력한다.
- calssmethod 는 첫번째 인자로 클래스 cls 를 입력한다.
- staticmethod 는 별도의 인자가 없다.
class CustomClass:
def instance_method(self, a, b):
return a + b
@classmethod
def class_method(cls, a, b):
return a + b
@staticmethod
def static_method(a, b):
return a + b
[staicmethod, classmethod 차이]
class Language:
default_language = "English"
def __init__(self):
self.show = '나의 언어는' + self.default_language
@classmethod
def class_my_language(cls):
return cls()
@staticmethod
def static_my_language():
return Language()
def print_language(self):
print(self.show)
class KoreanLanguage(Language):
default_language = "한국어"
staticmethod 에서는 부모클래스의 클래스 속성을 가저 오고
classmethod 에서는 cls 인자를 활용하여 해당 클래스의 속성을 가저온다.
>>> from language import *
>>> a = KoreanLanguage.static_my_language()
>>> b = KoreanLanguage.class_my_language()
>>> a.print_language()
나의 언어는English
>>> b.print_language()
나의 언어는한국어
'python lecture > basic' 카테고리의 다른 글
[edu] __contains__ (membership test, 멤버십 테스트) (0) | 2019.02.07 |
---|---|
[edu] abstract class (추상클래스) (0) | 2019.02.07 |
[edu] what is program (컴파일, 인터프리터, 언어) (0) | 2019.02.05 |
[edu] what is oop? (객체지향프로그래밍) (0) | 2019.02.03 |
[edu] context manager (__enter__, __exit__, with as, 컨텍스트 매니저) (0) | 2019.02.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- GIT
- chatbot
- 장고 카톡 자동응답
- 장고 플러스친구 자동응답
- pycrypto
- wsgi
- gitlab
- 파이썬 프로그래밍
- 이미지 비교
- 파이썬 입문
- gitignore
- Python
- 파이썬 독학
- django chatbot
- PuTTYGen
- 모바일 스킨 적용
- 플러스친구 자동응답
- Tistory
- virtualenv
- django
- 장고
- 문과 코딩
- admin.py
- 문서 비교
- 면접정답
- 파이썬 강좌
- 모바일 테마 적용
- 파이썬
- 면접답변
- 엑셀 비교
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함