Я новичок в python и просматриваю проект с открытым исходным кодом под названием pyOBD от Donour Sizemore для ELM327 (не совсем уверен, может быть нацелен на большее количество устройств сканирования). Я могу понять, что ниже приведен метод преобразования шестнадцатеричного значения. в int. Но как это работает? Особенно строка с eval
в ней.
def hex_to_int(str):
i = eval("0x" + str, {}, {})
return i
int(s, 16)
(и параметр должен был называться иначе, чемstr
). - person user2357112 supports Monica   schedule 23.08.2013str
, встроенный внутри функции. 2) пустые{}
абсолютно ничего не делают 3)eval
запустит любой код, который вы в него поместите (ОЧЕНЬ опасно) 4) то же самое можно сделать, просто выполнивint(s, 16)
, гдеs
это строка 5) он взорвется, если вы поместите во что угодно, кроме строки. - person   schedule 23.08.2013