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

Detaillierte Einführung in die Python-Variablenübergabe

高洛峰
Freigeben: 2017-03-16 09:29:04
Original
1920 Leute haben es durchsucht

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)
Nach dem Login kopieren
  • Ausgabe

num_1 = 123, num_2 = 123
num_1 = 123, num_2 = 0
Nach dem Login kopieren
  • 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)
Nach dem Login kopieren
  • Ausgabe

str_1 = hello python, str_2 = hello python
str_1 = hello python, str_2 = hello
Nach dem Login kopieren
  • 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)
Nach dem Login kopieren
  • 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]
Nach dem Login kopieren
  • 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)
Nach dem Login kopieren
  • 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}
Nach dem Login kopieren
  • 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)
Nach dem Login kopieren
  • 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
Nach dem Login kopieren
  • 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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage