2015-08-19 3 views
-1

Как эта функция магическая работа (ниже), то есть hex = '%032x' % self.int по какой-то причине, то получается следующее значение ...Python magic function, как это работает?

265631021230191344138857284998518456

в ....

0033289ed88646a64b9fc63c808fd6b8

def __str__(self): 
    hex = '%032x' % self.int 
    return hex 

Но все это должно на самом деле сделать из моих знаний: добавьте 032x в конец строки 265631021230191344138857284998518456, так что происходит? Как он делает то, что делает?

Full code here

+0

так что вы можете использовать '% s' (s строка) – Hacketo

+1

ваш код преобразует целое число (которое вы напечатали десятичным) в шестнадцатеричную строку (добавив 0 впереди, так что длина будет 32). –

+1

В этом случае «x» - это подписанное шестнадцатеричное преобразование для операций форматирования строк: https://docs.python.org/2/library/stdtypes.html#string-formatting-operations –

ответ

4

%x является format code для гекса. Ваша функция представляет десятичное значение в шестнадцатеричном формате.

>>> hex(265631021230191344138857284998518456) 
'0x33289ed88646a64b9fc63c808fd6b8' 

Полный код формата

'%032x' 

средства представляют ценность в hex и раздувания нулями слева до тех пор, пока 32 символов в ширину.

Смежные вопросы