Heim Backend-Entwicklung Python-Tutorial Die fünf Punkte von Python zur Korrektur des Umfangs

Die fünf Punkte von Python zur Korrektur des Umfangs

Nov 07, 2016 am 10:43 AM

1. Bereich auf Blockebene

Gibt es zu diesem Zeitpunkt eine Ausgabe, wenn das folgende Programm ausgeführt wird? Wird die Umsetzung erfolgreich sein?

#块级作用域
if 1 == 1:
    name = "lzl"
print(name)
for i in range(10):
    age = i
print(age)
Nach dem Login kopieren

Werfen wir zunächst einen Blick auf die Ausführungsergebnisse

C:/Users/L/PycharmProjects/s14/preview/Day8/作用域/main.py
lzl
9
 Process finished with exit code 0
Nach dem Login kopieren

Der Code wurde erfolgreich ausgeführt und es gibt kein Problem; in Java/C# wird die Ausführung des obigen Codes dazu führen Name und Alter sind nicht definiert, und es kann erfolgreich in Python ausgeführt werden, da es in Python keinen Bereich auf Blockebene gibt. Die Variablen im Codeblock können extern aufgerufen werden, sodass sie erfolgreich ausgeführt werden können

2. Lokaler Bereich

Wenn wir auf das Wissen zurückblicken, das wir zuvor gelernt haben, waren Funktionen separate Bereiche in Python, aber es gibt einen lokalen Bereich ; Schauen Sie sich den folgenden Code an

Führen Sie diesen Code aus und fragen Sie sich, ob es eine Ausgabe geben wird?
#局部作用域
def  func():
    name = "lzl"
print(name)
Nach dem Login kopieren

Ausführungsfehler, ich glaube, das kann jeder verstehen, die Namensvariable wird nur innerhalb der Funktion func() wirksam, daher kann sie nicht global aufgerufen werden, mal sehen Was ist das Ergebnis?
Traceback (most recent call last):
  File "C:/Users/L/PycharmProjects/s14/preview/Day8/作用域/main.py", line 23, in <module>
    print(name)
NameError: name &#39;name&#39; is not defined
Nach dem Login kopieren
Nach dem Login kopieren

Fügen Sie eine Codezeile zum vorherigen Code hinzu. Wird zu diesem Zeitpunkt eine Funktion ausgeführt?
#局部作用域
  
def  func():
    name = "lzl"
  
func()          #执行函数
print(name)
Nach dem Login kopieren

Die Ausführung meldet immer noch einen Fehler. Kehren wir zum Satz zurück: Auch wenn die Funktion ausgeführt wird, liegt der Gültigkeitsbereich des Namens nur innerhalb der Funktion und kann immer noch nicht von außen aufgerufen werden ; Denken Sie an die ersten beiden Wissenspunkte. Moment, beginnen wir als nächstes mit der Verstärkungsbewegung
Traceback (most recent call last):
  File "C:/Users/L/PycharmProjects/s14/preview/Day8/作用域/main.py", line 23, in <module>
    print(name)
NameError: name &#39;name&#39; is not defined
Nach dem Login kopieren
Nach dem Login kopieren

3. Bereichskette

Passen Sie die Funktion an und sehen Sie, was das Ausführungsergebnis des Folgenden ist Code ist?

Nachdem Sie die Funktionen gelernt haben, müssen Sie wissen, dass Snor nach der Ausführung von f1() ausgegeben wird. Es gibt eine Bereichskette in Python Suchen Sie zuerst nach dem Zielfernrohr. Ich bin nicht zum Vorgesetzten gegangen, um danach zu suchen, und habe einen Fehler gemeldet
#作用域链
  
name = "lzl"
def f1():
    name = "Eric"
    def f2():
        name = "Snor"
        print(name)
    f2()
f1()
Nach dem Login kopieren

4. Ultimative Version von der Umfang

Okay, genug der Vorahnung, die ultimative Version ist da~~

f2()
#终极版作用域
  
name = "lzl"
  
def f1():
    print(name)
  
def f2():
    name = "eric"
    f1()
Nach dem Login kopieren

Überlegen Sie, ob die endgültige Ausführung Ergebnis von f2() ist die Ausgabe von „lzl“ oder „eric“? Merken Sie sich Ihre Antwort, anstatt die Antwort jetzt zu posten:

Das Ausführungsergebnis ist „lzl“ und das f2()-Ausführungsergebnis ist „The Memory“. Die Adresse der Funktion f1, also ret=f1, entspricht der Ausführung von f1() und hat nichts mit f2() zu tun Wenn sich innerhalb der Funktion keine Variable befindet, wird der Wert des Variablennamens zu diesem Zeitpunkt „lzl“ sein. Wenn Sie dies verstehen, kennen Sie auch die Antwort auf den endgültigen Code dass die Antwort gerade nicht gegeben wurde
#终极版作用域
  
name = "lzl"
  
def f1():
    print(name)
  
def f2():
    name = "eric"
    return f1
  
ret = f2()
ret()
  
#输出:lzl
Nach dem Login kopieren

#终极版作用域
  
name = "lzl"
  
def f1():
    print(name)
  
def f2():
    name = "eric"
    f1()
  
f2()
Nach dem Login kopieren

# Ausgabe: lzl

Ja, die Ausgabe ist „lzl“, denken Sie daran, bevor die Funktion ausgeführt wird, Der Umfang wurde gebildet und die Umfangskette wurde ebenfalls generiert

5. Sina-Interviewfragen

Bestimmen Sie die Art von Li? Welcher Art sind die Elemente in li?
li = [lambda :x for x in range(10)]
Nach dem Login kopieren

Sie können sehen, dass li ein Listentyp ist und die Elemente in der Liste Funktionen sind. Geben Sie dann den Rückgabewert des ersten Elements in der Liste aus.
print(type(li))
print(type(li[0]))
  
# <class &#39;list&#39;>
# <class &#39;function&#39;>
Nach dem Login kopieren

#Lambada-Interviewfragen

#Ausgabe: 9
li = [lambda :x for x in range(10)]
  
res = li[0]()
print(res)
Nach dem Login kopieren

liDer Rückgabewert der ersten Funktion ist 9, aber nicht 0. Denken Sie daran: Die Funktion wird vorher nicht ausgeführt , der interne Code wird nicht ausgeführt; Sie können den Code im Blog selbst üben, um Ihren Eindruck zu vertiefen

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So registrieren Sie Komponenten, die nach Exportverlagerung in VUE exportiert werden So registrieren Sie Komponenten, die nach Exportverlagerung in VUE exportiert werden Apr 07, 2025 pm 06:24 PM

Frage: Wie registriert man eine Vue -Komponente, die durch Exportverlagerung exportiert wird? Antwort: Es gibt drei Registrierungsmethoden: Globale Registrierung: Verwenden Sie die Methode vue.comPonent (), um sich als globale Komponente zu registrieren. Lokale Registrierung: Registrieren Sie sich in der Komponentenoption, die nur in der aktuellen Komponente und in den Unterkomponenten verfügbar ist. Dynamische Registrierung: Verwenden Sie die Methode vue.comPonent (), um sich nach dem Laden der Komponente zu registrieren.

So verwenden Sie MySQL nach der Installation So verwenden Sie MySQL nach der Installation Apr 08, 2025 am 11:48 AM

Der Artikel führt den Betrieb der MySQL -Datenbank vor. Zunächst müssen Sie einen MySQL -Client wie MySQLworkBench oder Befehlszeilen -Client installieren. 1. Verwenden Sie den Befehl mySQL-uroot-P, um eine Verbindung zum Server herzustellen und sich mit dem Stammkonto-Passwort anzumelden. 2. Verwenden Sie die Erstellung von Createdatabase, um eine Datenbank zu erstellen, und verwenden Sie eine Datenbank aus. 3.. Verwenden Sie CreateTable, um eine Tabelle zu erstellen, Felder und Datentypen zu definieren. 4. Verwenden Sie InsertInto, um Daten einzulegen, Daten abzufragen, Daten nach Aktualisierung zu aktualisieren und Daten nach Löschen zu löschen. Nur indem Sie diese Schritte beherrschen, lernen, mit gemeinsamen Problemen umzugehen und die Datenbankleistung zu optimieren, können Sie MySQL effizient verwenden.

Wie kontrolliert PS -Federn die Weichheit des Übergangs? Wie kontrolliert PS -Federn die Weichheit des Übergangs? Apr 06, 2025 pm 07:33 PM

Der Schlüssel zur Federkontrolle liegt darin, seine allmähliche Natur zu verstehen. PS selbst bietet nicht die Möglichkeit, die Gradientenkurve direkt zu steuern, aber Sie können den Radius und die Gradientenweichheit flexius durch mehrere Federn, Matching -Masken und feine Selektionen anpassen, um einen natürlichen Übergangseffekt zu erzielen.

Muss MySQL bezahlen? Muss MySQL bezahlen? Apr 08, 2025 pm 05:36 PM

MySQL hat eine kostenlose Community -Version und eine kostenpflichtige Enterprise -Version. Die Community -Version kann kostenlos verwendet und geändert werden, die Unterstützung ist jedoch begrenzt und für Anwendungen mit geringen Stabilitätsanforderungen und starken technischen Funktionen geeignet. Die Enterprise Edition bietet umfassende kommerzielle Unterstützung für Anwendungen, die eine stabile, zuverlässige Hochleistungsdatenbank erfordern und bereit sind, Unterstützung zu bezahlen. Zu den Faktoren, die bei der Auswahl einer Version berücksichtigt werden, gehören Kritikalität, Budgetierung und technische Fähigkeiten von Anwendungen. Es gibt keine perfekte Option, nur die am besten geeignete Option, und Sie müssen die spezifische Situation sorgfältig auswählen.

Einführung von CSS in VUE -Datei Einführung von CSS in VUE -Datei Apr 08, 2025 am 06:36 AM

Zu den Methoden zur Einführung von CSS in VUE -Dateien gehören: Inline -Stile, Scoped -Stile, externe CSS, CSS -Präprozessoren und Stilbindungen. Die richtige Methode hängt von der Situation ab, z. B. Inline-Stile, die für kleine Stile geeignet sind. Scoped-Stile werden für komponentspezifische Stile verwendet. Externe CSS eignen sich für große Stile, CSS-Vorprozessoren bieten fortgeschrittene Funktionen, und es wird eine Stilbindung für dynamische Stile verwendet.

Wie richte ich PS -Federn ein? Wie richte ich PS -Federn ein? Apr 06, 2025 pm 07:36 PM

PS Federn ist ein Bildkantenschwärcheneffekt, der durch den gewichteten Durchschnitt der Pixel im Randbereich erreicht wird. Das Einstellen des Federradius kann den Grad der Unschärfe steuern und je größer der Wert ist, desto unscharfer ist er. Eine flexible Einstellung des Radius kann den Effekt entsprechend den Bildern und Bedürfnissen optimieren. Verwenden Sie beispielsweise einen kleineren Radius, um Details bei der Verarbeitung von Charakterfotos zu erhalten und einen größeren Radius zu verwenden, um ein dunstiges Gefühl bei der Verarbeitung von Kunst zu erzeugen. Es ist jedoch zu beachten, dass zu groß der Radius leicht an Kantendetails verlieren kann, und zu klein ist der Effekt nicht offensichtlich. Der Federneffekt wird von der Bildauflösung beeinflusst und muss anhand des Bildverständnisses und des Griffs von Effekten angepasst werden.

So optimieren Sie die Datenbankleistung nach der MySQL -Installation So optimieren Sie die Datenbankleistung nach der MySQL -Installation Apr 08, 2025 am 11:36 AM

Die MySQL -Leistungsoptimierung muss von drei Aspekten beginnen: Installationskonfiguration, Indexierung und Abfrageoptimierung, Überwachung und Abstimmung. 1. Nach der Installation müssen Sie die my.cnf -Datei entsprechend der Serverkonfiguration anpassen, z. 2. Erstellen Sie einen geeigneten Index, um übermäßige Indizes zu vermeiden und Abfrageanweisungen zu optimieren, z. B. den Befehl Erklärung zur Analyse des Ausführungsplans; 3. Verwenden Sie das eigene Überwachungstool von MySQL (ShowProcessList, Showstatus), um die Datenbankgesundheit zu überwachen und die Datenbank regelmäßig zu sichern und zu organisieren. Nur durch kontinuierliche Optimierung dieser Schritte kann die Leistung der MySQL -Datenbank verbessert werden.

Wie optimieren Sie die MySQL-Leistung für Hochlastanwendungen? Wie optimieren Sie die MySQL-Leistung für Hochlastanwendungen? Apr 08, 2025 pm 06:03 PM

Die MySQL-Datenbankleistung Optimierungshandbuch In ressourcenintensiven Anwendungen spielt die MySQL-Datenbank eine entscheidende Rolle und ist für die Verwaltung massiver Transaktionen verantwortlich. Mit der Erweiterung der Anwendung werden jedoch die Datenbankleistung Engpässe häufig zu einer Einschränkung. In diesem Artikel werden eine Reihe effektiver Strategien zur Leistungsoptimierung von MySQL -Leistung untersucht, um sicherzustellen, dass Ihre Anwendung unter hohen Lasten effizient und reaktionsschnell bleibt. Wir werden tatsächliche Fälle kombinieren, um eingehende Schlüsseltechnologien wie Indexierung, Abfrageoptimierung, Datenbankdesign und Caching zu erklären. 1. Das Design der Datenbankarchitektur und die optimierte Datenbankarchitektur sind der Eckpfeiler der MySQL -Leistungsoptimierung. Hier sind einige Kernprinzipien: Die Auswahl des richtigen Datentyps und die Auswahl des kleinsten Datentyps, der den Anforderungen entspricht, kann nicht nur Speicherplatz speichern, sondern auch die Datenverarbeitungsgeschwindigkeit verbessern.

See all articles