我写的代码是这样的
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“值,但也可以通过函数方法。
例如,类似这样的东西(我已经尝试过了,但不起作用):
def __init__(self, name, age):
self.name = name
self.age = age
self.breed = breed()
发布于 2018-06-28 05:41:57
您不应该将属性和方法命名为同一个东西。话虽如此,我对您为什么要问这个问题的怀疑告诉我,我应该向您推荐@property
装饰器。
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
,并以相同的名称将调用的值返回给您在其下定义的函数。
https://stackoverflow.com/questions/51071742
复制相似问题