Eingebaute Funktionen Einheimischen grundlegende Tutorial von Python () und Globals () Nutzungsanalyse

Dieses Papier beschreibt Beispiele von integrierten Funktionen Einheimischen grundlegende Tutorial von Python () und Globals () Nutzung. Teilen Sie für Ihre Referenz, wie folgt:

  1. Die beiden wichtigsten Funktionen zur Verfügung gestellt, die Art und Weise ein Wörterbuch-basierten lokalen Variablen und globale Variablen.

Python ein Ding namens den Namensraum der Spur Variablen aufzuzeichnen. Ein Namensraum ist ein Wörterbuch, dessen Schlüssel ist ein String Variablennamen, dessen Wert den tatsächlichen Wert der Variablen ist.

Namespace kann wie ein Python-Wörterbuch zugegriffen werden, wie.

Überall in einem Python-Programm, gibt es mehrere Namensräume zur Verfügung.

Jede Funktion hat einen eigenen Namensraum, der lokale Namensraum genannt wird, zeichnet sie die variablen Funktionen, einschließlich Parameter und lokale Variablen definierten Funktionen.

Jedes Modul verfügt über einen eigenen Namensraum, der globale Namespace genannt, es zeichnet die Variablen des Moduls, einschließlich der Funktionen, Klassen, die anderen Module der Einführung der Modul-Ebene Variablen und Konstanten.

Es gibt einen eingebauten im Namensraum, zugänglich von jedem Modul, das Funktionen und Ausnahmen-in gebaut hält.

  1. Wenn eine Codezeile den Wert der Variablen x zu verwenden, wird Python zu allen zur Verfügung stehenden Raumes gehen, um die Variablennamen zu finden, in der Reihenfolge wie folgt:

Lokale Namensraum - spezifisch für die aktuelle Funktion oder Methode der Klasse. Wenn die Funktion eine lokale Variable x definiert, oder einen Parameter x, wird es die Python verwenden, dann sucht,.

Global Namespace - spezifisch für den aktuellen Modul. Wenn das Modul eine Variable definiert, genannt x, Funktion oder Klasse wird Python nutzen und Stop-Suche.

Built-in-Namespace - global für alle Module. Als letzter Versuch wird Python davon aus, dass x eine eingebaute Funktion oder Variable.

Wenn Python keinen Platz in dieser Namen x finden kann, wird es aufgeben und einen Nameerror Auslöser eine Ausnahme finden, vorbei Es gibt keine Variable ‚x‘ eine solche Nachricht benannt ist.

  1. Namespace kann direkt zur Laufzeit zugegriffen werden. Lokale Namensraum ist über die eingebaute in Einheimischen Funktion. Global (Modulebene) Namensraum kann durch den Einbau-globals Funktion zugegriffen werden.

Einheimische auf der lokalen (Funktion) Namespace, Globals hat für die globale (Modul) Namespace durchgeführt.

Globals ist spannender, weil ein Modul Namensraum auf Modul-Ebene Variablen und Konstanten ist, es enthält alle Funktionen und Klassen in dem Modul definiert ist, sowie jedes Ding in das Modul importiert werden.

  1. Daran erinnert, dass der Unterschied zwischen dem aus dem Modul Import und Import-Modul?

Verwenden Importmodul, das Modul selbst importiert wird, aber es behält seinen eigenen Namensraum, weshalb Sie die Modulnamen verwenden, müssen ihre Funktionen oder Eigenschaften zuzugreifen: der Grund module.function.

Aber der Einsatz von Modul Import, tatsächlich von einem anderen Modul spezifizierten Funktionen und Eigenschaften in Ihren eigenen Namensraum, weshalb man sie direkt ohne Bezugnahme auf den Grund zugreifen können sie Module abgeleitet werden.

Mit dem Globals funktionieren, können Sie sehen, tatsächlich passiert es.

  1. über Einheimische () Beispiel:
def foo(arg, a):
  x = 100
  y = 'hello python!'
  for i in range(10):
    j = 1
    k = i
  print locals()
foo(1,2)

Ergebnisse:

{'a': 2, 'i': 9, 'k': 9, 'j': 1, 'arg': 1, 'y': 'hello python!', 'x': 100}
  1. Einheimische ist schreibgeschützt, kann nicht geändert werden, aber Globals modifiziert werden kann, denn:

über Einheimischer () nicht wirklich den lokalen Namensraum zurückkehren, es gibt eine Kopie. Daher ändern es, eine Kopie ändern, während keine Auswirkungen auf den tatsächlichen Wert der lokalen Variablen Namensraum.

Globals () gibt den aktuellen globalen Namensraum, keine Kopie: das genaue Gegenteil Verhalten der Einheimischen.

So die Änderungen in dem Wörterbuch Globals zurückgekehrt sein werden, direkt den Wert der globalen Variablen beeinflussen.

#!/usr/bin/env python
#coding:utf-8
'''''This is my first python program!'''
z = 7 #定义全局变量
def foo(arg):
  x = 1
  print locals()
  print 'x=',x
  locals()['x'] = 2 #修改的是局部名字空间的拷贝,而实际的局部名字空间中的变量值并无影响。
  print locals()
  print "x=",x
foo(3)
print globals()
print 'z=',z
globals()["z"] = 8 #globals()返回的是实际的全局名字空间,修改变量z的值
print globals()
print "z=",z

Ergebnisse:

{'x': 1, 'arg': 3}
x= 1
{'x': 1, 'arg': 3}
x= 1
{'foo': <function foo at 0x02A17CF0>, '__builtins__': <module '__builtin__' (built-in)>, '__file__': 'E:\\workspace\\python day03\\main\\test.py', '__package__': None, '__name__': '__main__', 'z': 7, '__doc__': 'This is my first python program!'}
z= 7
{'foo': <function foo at 0x02A17CF0>, '__builtins__': <module '__builtin__' (built-in)>, '__file__': 'E:\\workspace\\python day03\\main\\test.py', '__package__': None, '__name__': '__main__', 'z': 8, '__doc__': 'This is my first python program!'}
z= 8

Schließlich haben wir eine Reihe von viel beachteten öffentlichen Universitäten empfehlen [Programmierer], es gibt eine Menge von Oldtimern Lernfähigkeiten sind, Lernerfahrung, Interview Fähigkeiten, Erfahrungen am Arbeitsplatz und anderen Anteil, desto mehr werden wir sorgfältig vorbereitet den nullbasierten einleitenden Informationen über die aktuelle Projektdaten Methode, jeder Tag, erklärt Programmierer das Timing Python-Technologie, einen Teil des Lernens und die Notwendigkeit, achten Sie auf kleine Details zu teilen
Hier hat Bild einfügen Beschreibung

Veröffentlicht 20 Originalarbeiten · erntete Lob 0 · Aufrufe 3614

Ich denke du magst

Origin blog.csdn.net/chengxun02/article/details/104996368
Empfohlen
Rangfolge