Code
num_1 = 123 num_2 = num_1 # 改变num_2值前 print 'num_1 = {0}, num_2 = {1}'.format(num_1, num_2) num_2 = 0 # 改变num_2值后 print 'num_1 = {0}, num_2 = {1}'.format(num_1, num_2)
Ausgabe
num_1 = 123, num_2 = 123 num_1 = 123, num_2 = 0
Schlussfolgerung
Die numerischen Variablen werden übergeben Wert.
Code
str_1 = 'hello python' str_2 = str_1 # 改变str_2值前 print 'str_1 = {0}, str_2 = {1}'.format(str_1, str_2) str_2 = 'hello' # 改变str_2值后 print 'str_1 = {0}, str_2 = {1}'.format(str_1, str_2)
Ausgabe
str_1 = hello python, str_2 = hello python str_1 = hello python, str_2 = hello
Fazit
String-Variablen werden auch als Wert übergeben.
Code
l_1 = [1, 2, 3, 4] l_2 = l_1 print 'l_1 = {0}, l_2 = {1}'.format(l_1, l_2) l_2[0] = 100 # 改变l_2的第一个元素 print 'l_1 = {0}, l_2 = {1}'.format(l_1, l_2) l_2 = [1,1,1] # 改变l_2的全部元素 print 'l_1 = {0}, l_2 = {1}'.format(l_1, l_2)
Ausgabe
l_1 = [1, 2, 3, 4], l_2 = [1, 2, 3, 4] l_1 = [100, 2, 3, 4], l_2 = [100, 2, 3, 4] l_1 = [100, 2, 3, 4], l_2 = [1, 1, 1]
Fazit
Wie Sie der obigen Ausgabe entnehmen können, funktionieren l_1 und l_2 ähnlich wie Zeiger in c/c++, l_2 = l_1 entspricht l_2 und l_1, die auf denselben Speicher verweisen, und der Inhalt ist [1, 2, 3, 4]. Wenn l_2[0] = 100, wird auch das erste Element in l_1 geändert. l_2 = [1,1,1] lässt l_2 auf einen anderen Teil des Speichers verweisen, was keinen Einfluss auf den Inhalt von l_1 hat.
Code
d_1 = {'a': 1, 'b': 2, 'c': 3} d_2 = d_1 print 'd_1 = {0}, d_2 = {1}'.format(d_1, d_2) d_2['c'] = 10 print 'd_1 = {0}, d_2 = {1}'.format(d_1, d_2) d_2 = {'e': 12, 'f': 15} print 'd_1 = {0}, d_2 = {1}'.format(d_1, d_2)
Ausgabe
d_1 = {'a': 1, 'c': 3, 'b': 2}, d_2 = {'a': 1, 'c': 3, 'b': 2} d_1 = {'a': 1, 'c': 10, 'b': 2}, d_2 = {'a': 1, 'c': 10, 'b': 2} d_1 = {'a': 1, 'c': 10, 'b': 2}, d_2 = {'e': 12, 'f': 15}
Fazit
Die Ausgabeergebnisse zeigen, dass die Eigenschaften von dict und list denen von ähneln Referenz in C++ Pass.
Code
class Point: def init(self, x, y): self.x = x self.y = y def str(self): return ''.join(['x = ', str(self.x), ' ', 'y = ', str(self.y)]) p_1 = Point(12,34) p_2 = p_1 print 'p_1: {0}; p_2: {1}'.format(p_1, p_2) p_2.x = 122 print 'p_1: {0}; p_2: {1}'.format(p_1, p_2) p_2 = Point(89, 978) print 'p_1: {0}; p_2: {1}'.format(p_1, p_2)
Ausgabe
p_1: x = 12 y = 34; p_2: x = 12 y = 34 p_1: x = 122 y = 34; p_2: x = 122 y = 34 p_1: x = 122 y = 34; p_2: x = 89 y = 978
Fazit
Benutzerdefinierte Objekte werden während des Zuweisungsprozesses auch per Referenz übergeben.
In Python werden numerische Werte und Zeichenfolgen während des Zuweisungsprozesses als Wert übergeben. Liste, Diktat und Objekte werden während des Zuweisungsprozesses standardmäßig als Referenz übergeben Wenn Sie einen Wert übergeben müssen, können Sie die Funktionen copy und deepcopy unter dem Modul copy verwenden.
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Python-Variablenübergabe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!