[Python] 파이썬 오버라이딩(overriding) 및 클래스 변수와 메서드
클래스변수, 메서드 (공유변수, 공유메서드)
클래스 변수는 모든 인스턴스가 공유, 인스턴스가 생성되기 이전에 이미 메모리 공간에 존재한다.
접근방법 : 객체를 생성하지 않아도 접근이 가능하다.
클래스 메서드는 인스턴스가 생성되기 이전에 메모리 공간에 존재한다.
접근방법 : 클래스명.메서드()
@classmethod 라고 적음으로써 인스턴스 메서드와 구별이 가능하다.
인스턴스 메서드
main에서 객체(인스턴스)를 생성할때 메모리 공간에 선언된다.
접근방법 : 인스턴스명.메서드()
#class_overrding.py
class B:
#클래스 변수
int1=0 #객체를 생성하지 않더라도 이용이 가능하다.
#클래스 메서드, 인스턴스메서드
#def 메서드명():
#인스턴스 변수
b1=B()
print(b1.int1) #클래스변수이기 때문에 객체 없이 호출가능하다. (프로그램 시작부터 끝까지 유지한다.)
print(B.int1)
b1.int1 = 1000 #새로운 인스턴스 b1의 변수에 접근하여 1000을 대입
print(b1.int1)
print(B.int1)
#class_overrding2.py
class Account:
count =1
count_number = 1111
def __init__(self,money):
self.money = money
print(Account.count,"번 고객님 계좌>",Account.count_number)
Account.count +=1
Account.count_number +=1
self.count = 100
print('자신count>',self.count)
self.count += 1
a1 = Account(10000)
b1 = Account(1000)
print(a1.count)
print(b1.count)
댓글
댓글 쓰기