Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in die Python-Variablenübergabe

Detaillierte Einführung in die Python-Variablenübergabe

高洛峰
高洛峰Original
2017-03-16 09:29:041873Durchsuche

PythonVariableÜbergabe

Wert

  • 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.

String

  • 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.

Verknüpfte Liste

  • 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.

Wörterbuch

  • 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.

Objekt

  • 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.

Zusammenfassung

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn