[Python] 파이썬 오버라이딩(overriding) 및 클래스 변수와 메서드(@classmethod)

[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)

댓글