Изменить тип объекта в Python? - PullRequest
       1

Изменить тип объекта в Python?

0 голосов
/ 03 сентября 2018

Я хотел бы назначить тип для объекта через функцию, что-то вроде:

def set_type(obj,dest_type):
    [change the object to the dest_type here]
    return obj

Мне нужно сделать это, потому что я читаю параметры из файла в виде строк, и они впоследствии интерпретируются как целые числа, числа с плавающей запятой и логические значения. Конечно, я мог бы написать что-то вроде

if dest_type=='bool':
    bool(obj)

но нет ли лучшего способа сделать это? например, непосредственное указание типа функции?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Вы можете просто передать тип нового объекта.
Например,

>>> def convert(v,t):
...     return t(v)


>>> a = "test"
>>> b = convert(a,list)
>>> b
['t', 'e', 's', 't']
>>> b = convert(a,bool)
>>> b
True
>>> b = convert(b,int)
>>> b
1
>>> b = convert(b,float)
>>> b
1.0
0 голосов
/ 03 сентября 2018

Вы можете ожидать функцию как dest_type, например функция bool(). В этом случае ваш метод станет:

def set_type(obj, dest_type):
    return dest_type(obj)

Пример

obj = 1
set_type(obj, bool) # Yields True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...