możemy po prostu użyć:co oznacza przecinek w rozpakowaniu Pythona?
crc = struct.unpack('>i', data)
dlaczego ludzie tak:
(crc,) = struct.unpack('>i', data)
co to przecinek oznacza?
możemy po prostu użyć:co oznacza przecinek w rozpakowaniu Pythona?
crc = struct.unpack('>i', data)
dlaczego ludzie tak:
(crc,) = struct.unpack('>i', data)
co to przecinek oznacza?
Pierwszy wariant zwraca pojedynczego elementu krotki:
In [13]: crc = struct.unpack('>i', '0000')
In [14]: crc
Out[14]: (808464432,)
dostać się do wartości, trzeba napisać crc[0]
.
Drugi wariant rozpakowuje krotki, umożliwiając pisanie crc
zamiast crc[0]
:
In [15]: (crc,) = struct.unpack('>i', '0000')
In [16]: crc
Out[16]: 808464432
Przecinek oznacza crc
jest częścią krotki. (Interesujące jest, że to przecinki, a nie nawiasy, wskazują krotki w Pythonie.) (crc,)
to krotka z jednym elementem.
crc = struct.unpack('>i', data)
tworzy crc
krotkę.
(crc,) = struct.unpack('>i', data)
przypisuje crc
wartości pierwszej (i jedynym) elementu w krotce.
(crc,)
jest uważany za jeden krotki.
Metoda unpack
zwraca krotkę wartości. Dzięki opisanej składni można bezpośrednio załadować pierwszą wartość krotki do zmiennej crc
, podczas gdy pierwszy przykład ma odniesienie do całej krotki i trzeba uzyskać dostęp do pierwszej wartości, pisząc w późniejszym czasie skrypt crc[1]
.
Więc jeśli chcesz użyć tylko jednej z wartości zwracanych, możesz użyć tej metody, aby bezpośrednio załadować ją w jednej zmiennej.