Contents
반응형
# class Point
class Point:
count_of_instance = 1000
def setx(self, x):
self.x = x
def sety(self, y):
self.y = y
def getx(self):
return self.x
def gety(self):
return self.y
def show(self):
print(f'점[{self.x}, {self.y}]를 그렸습니다.')
@classmethod
def class_method(cls):
return cls.count_of_instance
@staticmethod
def static_method():
print('static method clalled')
> self라는 자기자신을 넣어줘야함
| bound instance Mehtod 호출
from point import Point
def test_bound_instnace_method():
p = Point()
p.setx(10)
p.sety(20)
p.show()
def main():
test_bound_instnace_method()
#test_unbound_class_method()
if __name__ == '__main__':
main()
| unbound class method 호출
(보통 unboud 안씀)
from point import Point
def test_unbound_class_method():
p = Point()
Point.setx(p, 10)
Point.sety(p, 20)
Point.show(p)
def main():
# test_bound_instnace_method()
test_unbound_class_method()
# test_other_method()
if __name__ == '__main__':
main()
인스턴스 메서드 / 정적 메서드 / 클래스 메서드
인스턴스 메서드
: 메서드 내부에서 self (인스턴스 객체 자신)을 참조하기 위해 메서드 파라미터로 받게 된다
첫번째 파라미터를 받지 않게 되면, 인스턴스 객체에서의 호출은 실패한다!
정적 메서드와 클래스메서드
: 인스턴스 객체의 멤버변수에 접근할 필요가 없는 메서드
정적 메서드와 클래스메서드의 차이점은 클래스멤버에 접근과 관련이 있다
클래스 메서드는 정적메서드와 달리 클래스멤버에 접근하기 위해 클래스 객체 참조값을 첫번쨰 파라미터로 받을 수 있는 메서드다. 첫번째 파라미터 변수의 이름은 임의로 정할 수 있으나 cls라는 이름을 사용한다
@classmethod
def class_method(cls):
return cls.count_of_instance
@staticmethod
def static_method():
print('static method clalled')
| 클래스 멤버와 인스턴스 멤버
클래스 멤버는 모든 인스턴스 객체들에서 공유됨
인스턴스 멤버는 각각의 인스턴스 객체에서만 참
반응형
'IT 공부 > Python' 카테고리의 다른 글
Python 크롤링, 동적으로 가져오기 selenium (0) | 2019.06.19 |
---|---|
Python 크롤링 연습 (0) | 2019.06.18 |
Python 파일입출력 예제 (0) | 2019.06.17 |
Python 모듈, import (0) | 2019.06.17 |
Python 기초 str, tuple 등.. (0) | 2019.06.13 |