首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否有其他方法可以将对象方法中的值转换为对象变量

是否有其他方法可以将对象方法中的值转换为对象变量
EN

Stack Overflow用户
提问于 2018-06-28 05:34:02
回答 1查看 49关注 0票数 -2

我写的代码是这样的

代码语言:javascript
复制
class Dog():
    def breed():
        return "rottwiller"

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

有没有另一种方法可以代替breed=breed()来获得"self.breed“值,但也可以通过函数方法。

例如,类似这样的东西(我已经尝试过了,但不起作用):

代码语言:javascript
复制
def __init__(self, name, age):
    self.name = name
    self.age = age
    self.breed = breed()
EN

回答 1

Stack Overflow用户

发布于 2018-06-28 05:41:57

您不应该将属性和方法命名为同一个东西。话虽如此,我对您为什么要问这个问题的怀疑告诉我,我应该向您推荐@property装饰器。

代码语言:javascript
复制
class Dog():
    def __init__(self, name, age, breed):
        self.name = name
        self.age = age
        self._breed = breed

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

这对于您的示例来说有点夸张了,但是如果您有一个Dog类和一个特定的种类,我想您正在考虑的是子类以及可能比您在这里做的更复杂的事情。本质上,@property装饰器将允许您以属性的形式访问breed,并以相同的名称将调用的值返回给您在其下定义的函数。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51071742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档