NTM中的一些Factory的用法

Factory 是 attrs 中定义的一种工厂函数,用于为对象属性提供默认值。在上述语句中,Factory 被传递给了 attrib 的参数 default,作为默认值生成器。

其中,CopyTaskParams 是一个类或一个对象,作为 Factory 的参数,用于指定需要使用的默认值生成器。这个默认值生成器将在创建实例时为属性提供默认值。具体来说,这条语句是将 params 属性设置为一个默认值为 CopyTaskParams() 的对象。

举个例子,如果有一个定义如下的类:

from attr import dataclass, attrib, Factory

@dataclass
class CopyTaskParams:
    source: str = attrib(default='')
    destination: str = attrib(default='')

@dataclass
class MyTask:
    params = attrib(default=Factory(CopyTaskParams))

task1 = MyTask()
print(task1.params)  # 输出: CopyTaskParams(source='', destination='')
  • 在这个 MyTask 类中,我们使用 attrib 定义了一个名为 params 的属性,并且将其默认值设置为一个 CopyTaskParams 类的实例。当我们创建一个 MyTask 对象实例时,如果没有为 params 属性指定具体值,那么 Factory(CopyTaskParams) 将会默认生成一个 CopyTaskParams 类的实例作为该属性的默认值。
  • 需要注意的是,这里 params 的默认值是一个对象的引用,而不是对象本身,因此如果将默认值作为默认参数值的情况下,需要使用 Factory 进行包装才能每次正确地生成一个新对象。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值