Python Underbar Das ist was

0407 Bearbeiten

Einführung

Es tut mir leid für den Beitrag für Anfänger, aber ich glaube, dass es Anfänger gibt, die ähnlich beunruhigt sind.

Unterbar, die ein wenig herauskommt

Warum kommst du nicht heraus, nachdem du den Code oder das Nachschlagewerk einer Person gelesen hast? ** Diese Unterleiste ist es nicht! Unterleiste wie _ **

python


H,W,_ = img.shape 

Oder zuerst

python


__main__

Warum gibt es eine Unterstange? Mögen. Diesmal ist so eine Geschichte.

Ich habe einen Gott-Artikel gefunden, während ich mir auch diesmal Sorgen gemacht habe, also werde ich ihn ausarbeiten und darauf basierend kauen. Klicken Sie hier, um den Artikel über Gott zu lesen, der Ihre Sorgen gelöst hat

[Lassen Sie uns den Unterstrich (_) von "Pythonic verschiedene" Python beherrschen!](Https://medium.com/lsc-psd/pythonic%E8%89%B2%E3%80%85-python%E3%81% AE% E3% 82% A2% E3% 83% B3% E3% 83% 80% E3% 83% BC% E3% 82% B9% E3% 82% B3% E3% 82% A2-% E3% 82% 92 % E4% BD% BF% E3% 81% 84% E3% 81% 93% E3% 81% AA% E3% 81% 9D% E3% 81% 86-3c132842eeef)

_ Um den Rückgabewert zu ignorieren

python


H,W,_ = img.shape 

Genau das habe ich im ersten Beispiel gegeben. Das ist es. .. .. Dies ignoriert den dritten Rückgabewert von .shape-underscore Zitiert, weil die Zitierquelle den Überschuss und den Mangel erklärte Sagt

Python hat viele Bibliotheken und ich importiere und verwende oft Funktionen. Wenn in einem solchen Fall mehrere Rückgabewerte von der Funktion vorhanden sind und ein Teil nicht verwendet wird, können Sie den Unterstrich verwenden und verwerfen, ohne den Speicher des Rückgabewerts zu belegen.

Mit dieser Funktion können Sie ein Programm erstellen, ohne Speicherplatz zu verschwenden. Dies scheint am häufigsten verwendet zu werden.

Über den Funktionsnamen _

Es scheint, dass es je nach Standort vier Typen gibt. Darüber hinaus ist es im PEP8-Codierungsstandard definiert. Ich wusste nicht einmal, dass es eine solche Definition gibt. https://www.python.org/dev/peps/pep-0008/

Es wird ausführlich in PEP8> Namenskonvention beschrieben. Dann werde ich die folgenden vier zusammenfassen

_Funktion (x): eine vor der Funktion

python


def _single_leading_underscore(x):
    return n
#weak "internal use" indicator. E.g. from M import *
#does not import objects whose names start with an underscore.

Wenn Sie dies schreiben, wird es nicht durch func import * von einem anderen Ort aufgerufen, aber es scheint, dass Sie eine Funktion mit einem Unterstrich als Funktion in einer Klasse wie classx._func () aufrufen können. Grundsätzlich scheint es die Praxis von Python zu sein, keine externen Referenzen zu akzeptieren, sondern einen Unterstrich hinzuzufügen. Ist das auch eine Lesemaßnahme?

Funktion (x) _: eine nach der Funktion

python


def list_(x):
    return n
#used by convention to avoid conflicts with Python keyword

Wenn Sie die reservierten Python-Wörter wie Liste und Klasse im Funktionsnamen verwenden möchten, fügen Sie am Ende ein _ hinzu.

__Funktion (x): Zwei vor dem Klassennamen

python


def __double_leading_underscore:
     return n
#when naming a class attribute, invokes name mangling 
#(inside class FooBar, __boo becomes _FooBar__boo; see below).

Wenn Sie einer Funktion in einer Klasse mit zwei Unterstrichen vorangehen, wird der Name ** mangling ** aufgerufen. Mangeln bedeutet Namensänderung, und kurz gesagt, es scheint, dass es intern nicht als gewöhnlich behandelt wird. Wie im obigen Beispiel geschrieben, kann die Variable \ _ \ _boo in der Klasse FooBar nicht von FooBar aufgerufen werden. \ _ \ _Boo und kann nur von \ _FooBar \ _ \ _boo aufgerufen werden. Dies akzeptiert auch keinen Zugang von außen. Ich denke, es kann als eine der Gegenmaßnahmen bezeichnet werden.

python


def __double_leading_and_trailing_underscore__: 
    return n
# "magic" objects or attributes that live in user-controlled 
# namespaces. E.g. __init__, __import__ or __file__. Never invent 
# such names; only use them as documented.``

http://www.ops.dti.ne.jp/ironpython.beginner/method.html

python


>>> 1_000_000
Out: 1000000

Wenn Sie vor und nach der Funktion in der Klasse zwei Unterstriche hinzufügen, wird dies zur Magic-Methode (spezielle Methode). Es ist eine Geschichte über spezielle Methoden, aber es scheint, dass sie verwendet werden, wenn Sie das Verhalten eines Objekts ändern oder es entsprechend der Art der Klasse bewegen möchten. Beispielsweise verwendet \ _ \ _ init \ _ \ _ das übergebene Argument. Es initialisiert ein neu erstelltes Objekt in der Klassendefinition. Es gibt viele magische Methoden. Es ist auf der Liste, aber es ist voll. Erleichtern Sie das Lesen der Zahlen _ [Referenz](https://medium.com/lsc-psd/pythonic%E8%89%B2%E3%80%85-python%E3%81] % AE% E3% 82% A2% E3% 83% B3% E3% 83% 80% E3% 83% BC% E3% 82% B9% E3% 82% B3% E3% 82% A2-% E3% 82% 92% E4% BD% BF% E3% 81% 84% E3% 81% 93% E3% 81% AA% E3% 81% 9D% E3% 81% 86-3c132842eeef) Nach> Python 3.6 und höher die Zahlen Sie können der Zahl einen Unterstrich hinzufügen, um das Lesen zu erleichtern. Sie können alle 3 häufig verwendeten Ziffern ein Komma setzen. Es scheint, dass selbst wenn Sie einen Unterstrich in einen numerischen Wert anstelle eines Kommas alle 3 Ziffern eingeben, dieser als geeigneter numerischer Wert erkannt wird. Dies ist praktisch, wenn Sie eine große Anzahl von Ziffern einfügen möchten.

Gibt den letzten im Interpreter _ angezeigten Wert an

python


>>> 10
Out: 10
>>> _ * 3
Out: 30
>>> _ * 10
Out: 300

Ich wusste das nicht, aber wenn Sie den Python-Interpreter verwenden, können Sie anscheinend die zuvor angezeigte Nummer mit dem Unterstrich erhalten.

** Nachtrag 0406 ** Wie Sie im Kommentar ausgeführt haben, scheint es, wenn Sie \ _ als Variablennamen verwenden, als Interpreter zu funktionieren, um den in die Variable eingegebenen Wert anstelle des zuvor angezeigten numerischen Werts anzuzeigen. Einzelheiten entnehmen Sie bitte den Kommentaren. Es gibt ein leicht verständliches Beispiel. Vielen Dank.

Was ist dann, wenn \ _ \ _ name__ == '\ _ \ _ main__'?

Ich habe eine Seite gefunden, die wunderschön organisiert ist Bedeutung und Verwendung von Python, wenn \ _ \ _ name \ _ \ _ == '\ _ \ _ main \ _ \ _'

Es scheint, dass "die nachfolgende Verarbeitung nur ausgeführt wird, wenn die entsprechende Datei als Skript über die Befehlszeile ausgeführt wird". Mit anderen Worten, es funktioniert nicht, wenn es von irgendwoher angerufen wird

Wenn ich den Code anderer lese, habe ich das Gefühl, dass er geschrieben wurde, um zu zeigen, dass dies der wichtigste ist.

abschließend

Ich möchte schönen Code schreiben.

andere Referenzen

[Python Cheet Sheet] Spezielle Methode So setzen Sie einen Unterstrich in die Markdown-Notation

Recommended Posts

Python Underbar Das ist was
Python-Unterstrichvariable
Python
Kafka Python
Python-Zusammenfassung
Eingebaute Python
Python-Einschlussnotation
Python-Technik
Python studieren
Python 2.7 Countdown
Python FlowFishMaster
Python-Dienst
Python-Tipps
Python-Funktion ①
Python-Grundlagen
Python-Memo
Ufo-> Python (3)
Python-Einschlussnotation
Installieren Sie Python
Python-Grundlagen ④
Python-Memorandum 2
Python-Memo
Python Jinja2
Python-Inkrement
atCoder 173 Python
[Python] -Funktion
Python-Installation
Python installieren 3.4.3.
Python-Memo
Python iterativ
Python-Algorithmus
Python2 + word2vec
[Python] -Variablen
Python-Funktionen
Python sys.intern ()
Python-Tutorial
Python-Fraktion
Python-Zusammenfassung
Starten Sie Python
[Python] Sortieren
Hinweis: Python
Python-Grundlagen ③
Python-Protokoll ausgeben
Python-Grundlagen
[Scraping] Python-Scraping
Python-Update (2.6-> 2.7)
Python-Memo
Python-Memorandum
Python #sort
Ufo-> Python
Python nslookup
Python lernen
[Rpmbuild] Python 3.7.3.
Prorate Python (1)
Python Memorandum
Laden Sie Python herunter
Python Memorandum
Python-Memo
Python gestartet