是否有另一种方法可以将对象方法中的值转换为对象变量?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (25)

我制作了类似的代码

class Dog():
    def breed():
        return "rottwiller"

    def __init__(self, name, age, breed=breed()):
        self.name = name
        self.age = age
        self.breed = breed

有没有另一种方法来实现“self.breed”值而不是breed = breed(),但也通过函数方法。

例如类似的东西(我试过这个不起作用):

def __init__(self, name, age):
    self.name = name
    self.age = age
    self.breed = breed()
提问于
用户回答回答于

发布的代码存在许多问题。

  1. breed__init__设置breed属性时,方法将被覆盖。所以该方法应该重命名。
  2. breed方法需要指定第一个参数self。 class Dog:def get_breed(self):return“rottwiller” def __init__(self, name, age): self.name = name self.age = age self.breed = self.get_breed()
用户回答回答于

你不应该将属性和方法命名为相同的东西。

class Dog():
    def __init__(self, name, age, breed):
        self.name = name
        self.age = age
        self._breed = breed

    @property
    def breed(self):
        return self._breed

所属标签

可能回答问题的人

  • 天使的炫翼

    17 粉丝531 提问36 回答
  • 富有想象力的人

    3 粉丝0 提问30 回答
  • 学生

    3 粉丝476 提问28 回答
  • o o

    4 粉丝494 提问27 回答

扫码关注云+社区

领取腾讯云代金券