• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

예시3 결과 관련

21.02.26 16:23 작성 조회수 179

1

안녕하세요?

예시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__(selfname):
        # 인스턴스 변수
        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)

답변 2

·

답변을 작성해보세요.

2

JaKe님의 프로필

JaKe

질문자

2021.02.26

찾았습니다. del 선언이 def로 잘못되었네요.^^

0

굿