[英]asdict() inside .format() in a Python class
如何在.format()
中使用asdict()
方法來解壓縮 class 屬性。 所以,而不是這個:
from dataclasses import dataclass, asdict
@dataclass
class InfoMessage():
training_type: str
duration: float
distance: float
message = 'Training type: {}; Duration: {:.3f} ч.; Distance: {:.3f}'
def get_message(self) -> str:
return self.message.format(self.training_type, self.duration, self.distance)
我可以寫這樣的東西:
@dataclass
class InfoMessage():
training_type: str
duration: float
distance: float
message = 'Training type: {}; Duration: {:.3f} ч.; Distance: {:.3f}'
def get_message(self) -> str:
return self.message.format(asdict().keys())
在這種情況下,應該在asdict
- self
的實例上調用 asdict 。 此外,您不需要字典的鍵,您需要它的值,您可以使用*
運算符進行傳播:
def get_message(self) -> str:
return self.message.format(*asdict(self).values())
# Here --------------------^
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.