在Python类中打印不同的值
我一直在尝试让这个方法打印出类里面的特定属性。虽然我已经把 _str_ 用在了其他地方,现在它返回的是我方法的位置,这对我来说没什么用。
class Account():
def __init__(self,name,value):
self.name = name
self.value = value
def __str__(self):
return f'Account owner: {self.name}\nAccount balance: ${self.value}'
def owner(self):
return self.name
def balance(self):
return self.balance
你明白我的意思了,我想让它返回用户在账户类中输入的名字。
2 个回答
0
下面这个函数的定义是错误的。
def balance(self):
return self.balance
这个self
会有两个属性,
- 名字(name)
- 值(value)
正确的定义是
def balance(self):
return self.value
1
我会这样做:
class Account():
def __init__(self,name,value):
self.name = name
self.value = value
def __str__(self):
return f'Account owner: {self.Owner}\nAccount balance: ${self.Balance}'
@property # note here a property to make external access more obvious
def Owner(self):
return self.name
@property # note here a property to make external access more obvious
def Balance(self):
return self.value # this is the property you need
if __name__ == '__main__': # a very simple test, common idiom
acct = Account("TomServo", 100.40)
print(acct)
输出结果:
账户拥有者:TomServo
账户余额:$100.4