안녕하세요?
예시3 소스를 다음과 같이 입력했는데
마지막 print 실행했을 때 'stock_num': 2
이렇게 출력되네요. 어디가 잘못 되었을까요?
다시 print('>>>', Warehouse.stock_num)으로 확인해도 2가 출력됩니다.
<출력값>
after {'__module__': '__main__', 'stock_num': 2, '__init__': <function Warehouse.__init__ at 0x00000157EA405DC8>, '__def__': <function Warehouse.__def__ at 0x00000157EA405E58>, '__dict__': <attribute '__dict__' of 'Warehouse' objects>, '__weakref__': <attribute '__weakref__' of 'Warehouse' objects>, '__doc__': None}
>>> 2
<작성한 소스>
# 예시3
# 클래스 변수, 인스턴스 변수
class Warehouse:
# 클래스 변수
stock_num = 0 # 재고
def __init__(self, name):
# 인스턴스 변수
self.name = name
Warehouse.stock_num += 1
def __def__(self):
Warehouse.stock_num -= 1
user1 = Warehouse('Lee')
user2 = Warehouse('Cho')
print()
print(Warehouse.stock_num)
# Warehouse.stock_num = 0.0094
print(user1.name) # 인스턴스의 네임스페이스
print(user2.name)
print(user1.__dict__) # 클래스의 네임스페이스
print(user2.__dict__)
print('before', Warehouse.__dict__)
print('>>>', user1.stock_num)
del user1
print('after', Warehouse.__dict__)
print('>>>', Warehouse.stock_num)