클래스의 인스턴스
class ClassTest:
pass
a = ClassTest() # a는 객체, a 객체는 ClassTest의 인스턴스
class
키워드 사용해서 새로운 클래스 작성class ClassTest:
pass
c = ClassTest()
print(type(c))
#출력 결과
#<class '__main__.ClassTest'>
self
self
에는 메소드를 호출한 객체
가 자동으로 전달class ClassTest:
def method(self, first, second):
self.first = first
self.second = second
c = ClassTest()
c.method(1, 2)
print(c.first)
print(c.second)
#출력 결과
#1
#2
c.method(1, 2)
실행 시
method 메소드의 매개변수 first, second에는 각각 1, 2가 전달
self는 전달된 객체 c이므로 c.first = 1
, c.second = 2
로 해석
👉 c 객체에 객체변수
first가 생성되고 1 저장
👉 c 객체에 객체변수
second가 생성되고 2 저장
클래스이름.클래스변수
로 사용 가능class ClassTest:
var = 1 #클래스 변수
def method(self, first, second):
self.first = first
self.second = second
c1 = ClassTest()
c2 = ClassTest()
print(ClassTest.var)
#id값이 모두 같으므로 모두 같은 메모리를 가리키고 있다
print(id(ClassTest.var))
print(id(c1.var))
print(id(c2.var))
#출력 결과
#1
#1556674480
#1556674480
#1556674480
__init__
메소드class ClassTest:
def __init__(self, first, second):
self.first = first
self.second = second
def add(self):
result = self.first + self.second
return result
c = ClassTest(1, 2)
print(c.add())
#출력 결과
#3
참고
https://gmlwjd9405.github.io/2018/09/17/class-object-instance.html
https://wikidocs.net/28
https://dojang.io/mod/page/view.php?id=2372
https://nirsa.tistory.com/110