Распознавание формы представления формата функции - PullRequest
0 голосов
/ 16 февраля 2020

Можно ли получить информацию о представлении числа, передаваемого в функцию? Например, если я передаю 0x14 (шестнадцатеричное) или 0b10100 (двоичное), Python в какой-то момент должен знать (я полагаю), что передал число с этим представлением, прежде чем оно будет сохранено во внутреннем формате данных.

Могу ли я получить доступ к этой информации, чтобы обработать число как шестнадцатеричное, двоичное, десятичное (например, c), когда я хочу напечатать его внутри функции (если эта информация не доступна напрямую).

1 Ответ

0 голосов
/ 16 февраля 2020

Основываясь на том, что отметил Джонршарп в комментариях, литералы 0x14 и 0b10100 в Python оба оцениваются в простые старые Python целочисленные объекты (т. Е. PyLongObject). Как только этот синтаксический анализ происходит (во время компиляции), «формат» источника, используемый для представления значения в тексте, полностью забывается. Если вы хотите, чтобы функция работала по-разному для «шестнадцатеричных» и «двоичных» чисел, вам придется либо представить эти значения в виде строк, а не чисел, либо передать дополнительный аргумент, указывающий желаемое представление.

...