我怎样才能使这篇文章不那么冗长而更优美呢?
@dataclass
class Bla:
number: int
numberPlusOne = field(init = False)
def __post_init__(self):
self.numberPlusOne = self.addOne(self.number)
def addOne(self, number):
number += 1
return number
Bla(10)
Output: Bla(number = 10, numberPlusOne = 11)
我必须使用post init方法吗?我正在尝试类似以下的方法:
@dataclass
class Bla:
number: int
numberPlusOne int = self.addOne(self.number)
def addOne(self, number):
number += 1
return number
但我得到错误,无法使它工作。
1条答案
按热度按时间vu8f3i0k1#
在我的选项中,
__post_init__
方法是最好的方法。field方法也有default
参数,但不可能将动态值指定为默认值。此方法可能很危险,因为u会增加方法参数,而且在某些情况下,您可能会修改原始对象。(https://medium.com/@meghamohan/mutable-and-immutable-side-of-python-c2145cf72747)
最大限度简化;)就这样: