점프 투 파이썬 class 질문드립니다.
class BankAccount:
def __init__(self, name, account_num, balance):
self.name=name
self.account_num=account_num
self.balance=balance
def __str__(self):
return ''+str(self.name)+'', '님의 계좌', ''+str(self.account_num)+'', '의 잔고는', ''+str(self.balance)+'', '원입니다.'
def get_name(self):
return ''+self.name+''
def get_account_num(self):
return ''+self.account_num+''
def get_balance(self):
return ''+self.balance+''
def deposit(money):
balance=balance+money
print(money, '원이 입금되었습니다. 잔고는', balance, '원입니다.')
def withdraw(money):
if balance >= money:
balance=balance-money
else:
print('계좌 잔고는', balance, '원으로 인출 요구 금액', money, '원보다 작습니다.')
account1=BankAccount('홍길동', '1234-0001', '0')
print(account1)
실행하면 마지막 줄인 'ptiny(account1)에서 '__str__ returned non-string (type tuple)'
이런 오류가 뜨는게 어떻게 해결해야 할까요?
초보에유 님 708
M 2022년 11월 27일 11:42 오전
2개의 답변이 있습니다. 1 / 1 Page
print(account1)가 문제입니다.
account1=BankAccount('홍길동', '1234-0001', '0')
print(account1)
---------------------------------- 이부분 삭제하세요.
print(BankAccount('홍길동', '1234-0001', '0').str()) 으로 바꾸어 주어야 합니다.
질의자님이 주신 명령은 클래스를 print하라는건데, 그렇게 사용하시면 안되시고,
BankAccount라는 클래스에서 str() 함수를 프린터 해줘 라고 쓰셔야 합니다.
__str__함수에는 print()가 없지만, 리턴값을 가지므로, 리턴값을 출력하면 해당 print()출력과 같아지게 되겠지요.
jayb8463 님
2022년 12월 22일 4:02 오후
def __str__():
함수가 스트링이 아닌 튜플을 반환하고 있습니다.
def __str__():
함수의 리턴값을 스트링으로 바꾸어주세요.
return에 , 로 구분을 하게되면 튜플로 반환하게 됩니다.
,를 +로 바꾸시든 f"{self.name}님의 계좌 {self.account_num}의 잔고는 f{self.balance}원입니다." 로 바꾸어보시고
python f-string에 관해 알아보세용
내장 함수인
def __str__():
에 대해서도 정확히 이해하세용
def __repr__():
도 함께
pbase 님
M 2023년 1월 3일 10:25 오전