type?
Например:
»»» a = 'int'
..............
»»» a(14.3)
14
в обьект типа type?
Ну да, то есть в int или в float или в str или в type
Это что за юзкейс?
a = int a(123.4)
Нет, вот если в переменной хранится строка с текстом типа, но я заранее не знаю какая, но я 100% уверен что там имя объекта у которого тип type.
блин, так что на что ты проверяешь, что за странгое использование ))
говно кейс eval не предлагать
а почему eval не предлагать?
Потому что говно решение но других у меня нет
а давай я щас попробую написать
С евалом не интересно. Без евала - круто
def convert(typee, var): try: if isinstance(eval(typee), type): return eval(typee)(var) except: return 'Некорректная функция'
А как оно должно работать то ? class Zxc: pass z = Zxc isinstance(type, z) >>> False
Аргументы в isinstance местами надо поменять)
Чет не врубаюсь. У тебя функция принимает два аргумента. А можно сделать чтобы принимала только один и это была просто переменная, а возвращала объект типа type
def convert(typee): try: return eval(typee) except: return 'Некорректная функция'
Оооо, круто, ну и магия. Так просто же. Тупо eval и всё. Лол.
Состав словарь имя типа - класс
Вот это "и всё" - потенциальная огромная дыра в безопасности
слишком очевидно
хочется что бы как с eval(type) было
Это не будет работать
literal_eval какой-то есть. Как им пользоваться?
Несколько более безопасная версия, но все еще не рекомендуется даже в докумкнтации.
@caralice думаю тебе будет интереесно, только дочитай тред до конца
он тут всё равно не поможет
так и не поняла для какой задачи это нужно
у самурая есть только путь..
Обсуждают сегодня