在具有default_factory的字段中引用数据类的变量

大卫·辛格

我想在lambda函数中为default_factory引用一个数据类变量,例如:

from typing import List
from dataclasses import dataclass, field

@dataclass
class A:
    a: float = 1
    b: List = field(default_factory = lambda: [a])

但是我得到了变量未定义的错误。我该如何解决?

Arne

您有范围问题。在执行lambda函数时,a它不再可见,因此它不知道如何解决它。另请参阅python文档中有关延迟执行lambda的简单得多的示例,以了解此问题。

您可以通过a在创建lambda的本地范围时将其绑定解决此问题

@dataclass
class A:
    a: float = 1
    b: List = field(default_factory = (lambda a=a: [a]))

看起来有点怪异,但确实可以。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

当提供的参数为None时,是否可以强制数据类字段调用其default_factory?

类扩展中声明的变量是否具有强引用?

ValueError:不允许字段标题的可变默认 <class 'dict'>:使用 default_factory

如何使用特定的数据结构作为defaultdict的default_factory?

如何在C ++中编写具有多个数据字段的类Java枚举类?

在Java中,可以为类具有泛型类型的变量分配方法引用吗?

检查ArrayList中数据类中的字符串字段是否具有给定值

在具有变量的类中查询

具有类变量的Python数据类继承

为什么Kotlin数据类在Gson的不可为空的字段中可以具有null?

如何在数据类字段中引用“self”?

无法在 JNI 中引用 Kotlin 数据类字段

具有不同后备字段类型的Kotlin数据类

具有Iterable字段的冻结和可哈希的数据类

Python defaultdict 在设置 default_factory 时抛出 KeyError ?

引用带有变量的类

Jenkins文件中具有类引用的Jenkins共享库

在 data.table 中具有指定变量的引用列

在R中引用具有相同前缀的变量

将具有不同ID的SQL表字段中的数据检索到相应的不同变量中

Python在类中是否具有“私有”变量?

具有类字段的结构

球拍类中的私有字段(或成员变量)

如何确定数据类中的字段是否具有默认值或是否已明确设置?

类中具有相同变量名的多重继承

子类和父类中具有相同的变量

让具有“this”上下文的类中的变量

类中的字段变量(Python)

在类方法Javascript中引用类变量