小编Bel*_*i B的帖子

初始化数据类中字段的默认值时调用方法

为属性设置默认值时,我可以调用在类外部定义的函数,但不能调用类内定义的方法。

请参阅下面的示例。

进口:

from dataclasses import dataclass, field
Run Code Online (Sandbox Code Playgroud)

call_that()外部定义工作正常:

def call_that():
  return -1

@dataclass
class Foo:
  myvar : int = field(default_factory = call_that)

Foo()
Run Code Online (Sandbox Code Playgroud)

返回“Foo(myvar=-1)”

call_this()里面定义了

@dataclass
class Foo:
  myvar : int = field(default_factory = call_this)
  def call_this():
    return 1

Foo()
Run Code Online (Sandbox Code Playgroud)

返回“NameError:名称'call_this'未定义”

python python-dataclasses

5
推荐指数
1
解决办法
2294
查看次数

标签 统计

python ×1

python-dataclasses ×1