在Python类中打印不同的值

0 投票
2 回答
64 浏览
提问于 2025-04-14 18:28

我一直在尝试让这个方法打印出类里面的特定属性。虽然我已经把 _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会有两个属性,

  1. 名字(name)
  2. 值(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

撰写回答