Es scheint, dass Sie ein wenig verwirrt darüber sind, wie Argumente/Parameter übergeben werden.
Schauen Sie sich dieses Beispiel an.
def my_func(copy_var):
#copy_var=1
print(copy_var)
print(hex(id(copy_var)))
var=1000
print(var)
print(hex(id(var)))
print("----------------------")
my_func(var)
output:
1000
0x7efd723d9b70
----------------------
1000
0x7efd723d9b70
Hinweis: hex (ID (variable)) gibt nur die Adresse des Speichers des gespeicherten Wertes in einer Variablen
bemerken, wie die Adressen sind gleich. Bedeutet, dass sowohl die lokale Variable (die nur für die Funktion lokal ist) als auch die globale Variable auf dieselbe Adresse zeigen.
Der Umfang von copy_var ist jedoch nur innerhalb dieser Funktion. Wenn Sie versuchen, darauf zuzugreifen. Fehler wird ausgelöst.
Werfen Sie einen Blick auf diese.
def my_func(copy_var):
print(copy_var)
var=1000
print(var)
print("------------------------")
my_func(var)
print(copy_var)
Ausgang:
1000
------------------------
1000
Traceback (most recent call last):
File "/home/mr/argfunc.py", line 7, in <module>
print(copy_var)
NameError: name 'copy_var' is not defined
nun so einfach wie ich setzen,
def my_func(copy_var):
print(copy_var)
print(var)
var=1000
print(var)
my_func(var)
Beide copy_var
und var
haben den gleichen Wert auf gleiche Adresse zeigen. Aber der eigene Umgang ist innerhalb der Funktion, während der andere global ist.
Hinweis wie sie beide (copy_var und var) den gleichen Wert 1000
drucken. Genau das passiert in deinem verwirrenden Code.
Also zurück auf Ihr Kommen, da in dieser Linie als added_items
so beide auf dieselbe Adresse
add_to_inventory(stuff, dragon_loot)
dragon_loot
gegeben gleiche Werten zu funktionieren. Aber nur Unterschied ist ihre Bereiche sind unterschiedlich.
dragon_loot
? ->added_items
Ich las und las, aber ich kann wirklich Ihre Frage hier nicht finden :(, könnten Sie mehr klar sein, bitte, was in der Tat ist Ihre Frage, was ist das Problem –
Sie fragen, warum? Inventar [dragon_loot [n]] == Inventar [added_items [n]]? – JohnDoe
Ja, das ist es, ich weiß nicht, wie sie gleichwertig sind. – Tuto