簡體   English   中英

asdict() inside.format() 在 Python class

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM