Проверьте, вводится ли поле. Необязательно.Python

Программы на Python
Anonymous
 Проверьте, вводится ли поле. Необязательно.

Сообщение Anonymous »

Как лучше всего проверить, печатается ли поле класса. Необязательно?
Пример кода:

Код: Выделить всё

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)))
Если поля взяты из классов данных, я хочу перечислить все необязательные поля.
Что я делаю в данный момент для решения этой проблемы, так это использую регулярное выражение на основе имени поля, но мне не нравится этот подход. Есть ли лучший способ сделать это?

Подробнее здесь: https://stackoverflow.com/questions/568 ... g-optional

Вернуться в «Python»