Как я могу принять невыписным способом как интенсивным, так и ценностям этого перевода?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу принять невыписным способом как интенсивным, так и ценностям этого перевода?

Сообщение Anonymous »

Существует ли чистый способ ввести аргумент как принятие как Intenum (или Streum в этой ноте), так и его обнаженные значения без необходимости объявлять принятые значения в два раза? PrettyPrint-Override ">

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

from enum import IntEnum
from typing import Literal

class Foo(IntEnum):
bar = 42

def my_func(arg: Foo) -> None:
print(arg)

def my_func_2(arg: Literal[42]) -> None:
print(arg)

my_func(42) # "Literal[42]" is not assignable to "Foo"  (reportArgumentType)
my_func_2(42)

my_func(Foo.bar)
my_func_2(Foo.bar) # "Literal[Foo.bar]" is not assignable to "Literal[42]"  (reportArgumentType)
Чтобы принять оба, мне нужно было ввести arg следующим образом:

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

def my_func(arg: Foo | Literal[42]) -> None:
print(arg)
Существует ли способ ввести arg в качестве принятия значений Intenum , так и значений, не требуя повторения значений? Это может быть заметно полезно с большими перечислениями.


Подробнее здесь: https://stackoverflow.com/questions/796 ... ums-values
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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