Za pomocą
a=7
print hex(id(a))
Wracając:
0x7f866b425e58
Zamierzając użyć tego wyjścia (przekonwertowane na ciąg) jako numer identyfikacyjny dla każdego obiektu klasyfikacji, którego zadeklarowano, muszę upewnić się, że pozostanie taki sam, podczas gdy program działa. Muszę też wiedzieć, czy druga postać jest zawsze "x" (na Mac, Win i Linux). Jeśli robię zły wybór, wybierając hex(id))
, daj mi znać, co będzie lepszą opcją.
2 odpowiedzi
id()
ma być stabilny do żywotności obiektu, , ale Identyfikator można ponownie użyć, jeśli obiekt zostanie zniszczony.
Prefiks 0x
zawsze będzie tam, gdy używasz hex()
. Możesz również użyć format(..., 'x')
, aby sformatować do numeru sześciokątnego bez prefiks:
>>> a = 7
>>> print format(id(a), 'x')
7f866b425e58
Byłbyś lepszy tylko za pomocą itertools.count()
obiekt Aby wyprodukować unikalne identyfikatory, być może z prefiksem lub negując numer, jeśli chcesz odróżnić je od innych:
from itertools import count
id_counter = count()
Za każdym razem, gdy potrzebujesz nowego identyfikatora, użyj:
next(id_counter)
I przechowuj to jako atrybut w swoich przypadkach. Możesz zrobić count()
liczyć w dół , dając mu negatywny krok:
id_counter = count(-1, -1)
Próbny:
>>> from itertools import count
>>> id_counter = count(-1, -1)
>>> next(id_counter)
-1
>>> next(id_counter)
-2
Możesz spojrzeć na Hash (OBJ) https://docs.Przymiony.org /2/library/functions.html#hash.
Zwróć wartość Hash obiektu (jeśli ma jeden). Wartości Hash są liczbami całkowitymi. Służą do szybkiego porównywania kluczy słownika podczas wyszukiwania słownika. Wartości liczbowe, które porównują równe, mają tę samą wartość hash (nawet jeśli mają różne typy, podobnie jak w przypadku 1 i 1,0).
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.