相关疑难解决方法(0)

检查字段是否正在输入。可选

检查类中的字段是否正在打字的最佳方法是什么?可选?

示例代码:

from typing import Optional
import re
from dataclasses import dataclass, fields

@dataclass(frozen=True)
class TestClass:
    required_field_1: str
    required_field_2: int
    optional_field: Optional[str]

def get_all_optional_fields(fields) -> list:
    return [field.name for field in fields if __is_optional_field(field)]

def __is_optional_field(field) -> bool:
    regex = '^typing.Union\[.*, NoneType\]$'
    return re.match(regex, str(field.type)) is not None

print(get_all_optional_fields(fields(TestClass)))
Run Code Online (Sandbox Code Playgroud)

fields来自哪里dataclasses,我想列出所有Optional字段。我现在正在做的解决这个问题是使用基于字段名称的正则表达式,但我不喜欢这种方法。有更好的方法吗?

python typing python-3.7

8
推荐指数
4
解决办法
3995
查看次数

标签 统计

python ×1

python-3.7 ×1

typing ×1