클래스사용하기에서
page 506번 소스코드에서
class Person():
def __init__(self,name,age,address,wallet):
self.hello='안녕하세요'
self.name=name
self.age=age
self.address=address
self.__wallet=wallet
def pay(self,amount):
self.__wallet=wallet-amount
print('이제 {0}원 남았네요'.format(self.__wallet))
maria=Person('마리아',27,'노원구 하계동',10000)
maria.pay(7000)
이런식으로 self.__wallet=wallet-amount
이렇게 정의하면 오류가나는이유가뭔가요
-= 의뜻이 예를들어 a-=b 이거는 a=a-b이거잖아요
그러면 __wallet-=amount 이거는 wallet=wallet-amount 이거랑똑같은거아닌가요
self.__wallet=wallet
이 아니라
self.wallet = wallet
일 것 같습니다.
띄어쓰기도 파이썬 코딩 스타일이고, 코드 가독성에도 도움이 됩니다.
self.wallet = wallet 일 것 같습니다.
에서요 코드에서 비공개속성으로 __ 붙여서 써있잖아요 코드에
8번쨎ㄹ에 self._ _wallet-=amount
이렇게나와있잖아요
제가 궁금한부분은 a-=b 이거는 a=a-b를 뜻하는건데
그럼 self._ _wallet-=amount는
self._ _wallet=_ _wallet-amount
이거는 왜 안되냐 이거입니다 ㅠ
def __init__(self,name,age,address,wallet):
self.hello='안녕하세요'
self.name=name
self.age=age
self.address=address
self.__wallet=wallet
wallet은 __init__에서 인자로 받은 변수입니다.
def pay(self,amount):
self.__wallet=wallet-amount
print('이제 {0}원 남았네요'.format(self.__wallet))
여기서 wallet-amount인데 wallet은 없습니다. 인자가 없으니까 없는 변수입니다.self.__wallet - amount는 동작할 겁니다.