简体   繁体   English

如何在不提供参数的情况下在 Python 中实例化一个新的数据类实例?

[英]How can I instantiate a new dataclass instance in Python without supplying parameters?

I want to create a data class instance and supply values later.我想创建一个数据类实例并稍后提供值。

How can I do this?我怎样才能做到这一点?

def create_trade_data():
    trades = []
    td = TradeData()
    td.Symbol='New'
    trades.append(td)
    return trades

DataClass:数据类:

from dataclasses import dataclass

@dataclass
class TradeData:
    Symbol : str
    ExecPrice : float

You have to make the attributes optional by giving them a default value None你必须通过给它们一个默认值None来使属性成为可选的

from dataclasses import dataclass

@dataclass
class TradeData:
    Symbol: str = None
    ExecPrice: float = None

Then your create_trade_data function would return然后您的create_trade_data函数将返回

[TradeData(Symbol='New', ExecPrice=None)]

Now, I chose None as the default value to indicate a lack of content.现在,我选择None作为默认值来表示缺少内容。 Of course, you could choose more sensible defaults like in the other answer.当然,您可以像其他答案一样选择更合理的默认值。

from dataclasses import dataclass

@dataclass
class TradeData:
    Symbol : str = ''
    ExecPrice : float = 0.0

With the = operator you can assign default values.使用 = 运算符,您可以分配默认值。 There is the field method which is used for mutable values, like list.有用于可变值的字段方法,如列表。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM