Warum unterscheidet sich FrozenList von Tupel?

8
%Vor%

Warum nicht einfach Tupel verwenden? Welche zusätzliche Funktionalität bietet eine FrozenList?

    
dmvianna 04.09.2014, 22:44
quelle

1 Antwort

14

Dies ist ein internes Pandas-Konstrukt. Kein Tupel, weil:

  • Es erbt von einer Pandas-Klasse
  • Seine anpassbare (z. B. die repr)
  • Es hat nicht alle Funktionen eines Tupels (einige sind deaktiviert)
  • Es ist nicht hashbar (also mehr wie eine Liste hier und kein Tupel)

Das Konstrukt wird verwendet, um MultiIndex-Ebenen, -Etiketten und -Namen darzustellen. Der Zweck davon ist, eine Modifikation dieser Thru-Attribute zu verhindern und die Verwendung von Methoden zu erzwingen (z.B. set_levels() ). Da deren Status nicht unabhängig geändert werden kann (für level / labels), muss dieser jedoch gemeinsam geändert werden.

Dies sind jedoch 'öffentliche' Eigenschaften, also brauchte es einen Zugriffsmechanismus, der all dies tun konnte (und dennoch aus Leistungsgründen intern geändert werden kann).

    
Jeff 04.09.2014, 22:52
quelle

Tags und Links