相关疑难解决方法(0)

使用类或静态方法作为数据类中的default_factory

我想使用该方法填充数据类的属性default_factory。但是,由于工厂方法仅在该特定类的上下文中有意义,因此我想将其保留在类内部(例如作为静态或类方法)。例如:

from dataclasses import dataclass, field
from typing import List

@dataclass
class Deck:
    cards: List[str] = field(default_factory=self.create_cards)

    @staticmethod
    def create_cards():
        return ['King', 'Queen']
Run Code Online (Sandbox Code Playgroud)

但是,我在第 6 行收到此错误(如预期):

NameError:名称“self”未定义

我怎样才能克服这个问题?我不想将该create_cards()方法移出类。

python python-dataclasses

10
推荐指数
1
解决办法
9979
查看次数

标签 统计

python ×1

python-dataclasses ×1