[PYTHON] Unterschiede in Identität, Äquivalenz und Aliasnamen

Ich beschloss, ein Memorandum zu schreiben, um diese Gelegenheit zu nutzen, um zusammenzufassen, was ich am Ende nur mit einem Bild hatte.

Einführung

Dieser Artikel basiert auf Fluent Python-Pythonic Thinking and Coding Techniques.

Identität

Zunächst aus dem Wörterbuch Bedeutung

** 1 Verschiedene Dinge sind von Natur aus nicht zu unterscheiden. ** ** ** ** 2 Die Dinge sind zeitlich und örtlich gleich. Selbstidentität. Unabhängigkeit. Identität. ** ** **

Dieses Mal habe ich goo dictionary verwendet.

Angenommen, eine Person mit bürgerlichem Namen Lisa arbeitet unter dem Namen Emma. In diesem Fall sind nicht nur die Namen gleich, sondern auch der Inhalt. Nehmen wir auch an, eine Person namens Lily stellt sich falsch als Lisa dar. Wenn dieser Fall programmatisch ausgedrückt wird

Lisa = {'name': 'Lisa', 'born': 1996, 'job': 'singer'}
Emma = Lisa;
Lily = {'name': 'Lisa', 'born': 1996, 'job': 'singer'}

print(id(Lisa));
print(id(Emma));
print(id(Lily));

print((Lisa) is (Emma));
print((Lisa) is (Lily));

Wenn dies angezeigt wird

4540344832
4540344832
4540344912
True
False

Es sieht aus wie das. Sie können sehen, dass Lisa und Emma dieselbe ID haben, aber Lily eine andere ID. Selbst wenn Sie den Operator is verwenden, können Sie sehen, dass Lisa und Emma False anzeigen und unterschiedlich sind.

Gleichwertigkeit

Auch aus einem Wörterbuch Bedeutung ** 1 Wert und Preis sind gleich. Gleicher Preis. ** ** ** ** 2 Gleichwert (Doch) ** Also als ich den gleichen Wert nachgeschlagen habe

** In der Logik, in zwei Sätzen p und q, wenn einer wahr ist, ist der andere wahr, und wenn einer falsch ist, ist der andere falsch, dann werden p und q als äquivalent bezeichnet. Wenn "q wenn p" und "p wenn q" gleichzeitig gelten, haben p und q den gleichen Wert. Gleicher Wert. Äquivalent. Äquivalent. ** ** ** Es wurde gesagt. Dann nach wie vor das Programm

Lisa = {'name': 'Lisa', 'born': 1996, 'job': 'singer'}
Emma = Lisa;
Lily = {'name': 'Lisa', 'born': 1996, 'job': 'singer'}

print(id(Lisa));
print(id(Emma));
print(id(Lily));

print((Lisa) is (Emma));
print((Lisa) is (Lily));

print((Lisa) == (Emma));

Ich habe gerade print ((Lisa) == (Emma)); zur letzten Zeile hinzugefügt ... lol Wenn dies angezeigt wird

4431907408
4431907408
4431907488
True
False
True

Es sieht aus wie das. Nun, die ID ist unterschiedlich, aber der Inhalt ist der gleiche. Wenn Sie also den Operator == verwenden, ist er True.

alias

Aus einem Wörterbuch Bedeutung ** Aliase sind englische Wörter, die Bedeutungen wie Pseudonyme, Aliase und gebräuchliche Namen haben. Im IT-Bereich bezieht es sich auf einen Mechanismus, mit dem ein Objekt oder eine Entität auf dieselbe Weise durch mehrere verschiedene Symbole oder Bezeichner referenziert werden kann. alias. ** ** ** Nun, es ist wie ein Spitzname. Emma ist auch ein Alias für Lisa.

Zusammenfassung

Die beiden Variablen Lisa und Emma sind Aliase, die an dasselbe Objekt gebunden und identisch sind. Die an Lisa und Lily gebundenen Objekte haben den gleichen Wert, sind aber nicht gleich. Es gibt Äquivalenz. ~~ Es kann nicht organisiert werden lol ~~

Nachtrag

Sie haben darauf hingewiesen, dass Aliase wie Referenzübergabe sind. Aber Python kann nicht. Bitte beziehen Sie sich darauf, wenn Sie als Referenz in Python übergeben. Programmier-FAQ

Recommended Posts

Unterschiede in Identität, Äquivalenz und Aliasnamen
Identität und Äquivalenz: ist und == in Python
Unterschied in der Authentizität zwischen Python und JavaScript
Unterschiede zwischen Ruby und Python im Umfang
Unterschiede zwischen Python- und Java-Syntax
Unterschiede in der Multithread-Verarbeitung zwischen Python und Jython
Unterschiede zwischen queryStringParameters und multiValueQueryStringParameters in AWS Lambda
Einheitsmatrix und inverse Matrix: Lineare Algebra in Python <4>
Berechnen Sie Pose- und Transformationsunterschiede in Python mit ROS
Preisunterschiede nach Präfektur (2019)
Clipping und Normalisierung in TensorFlow
Objektäquivalenzbeurteilung in Python
Stapel und Warteschlange in Python
Unittest und CI in Python