0407 Bearbeiten
Es tut mir leid für den Beitrag für Anfänger, aber ich glaube, dass es Anfänger gibt, die ähnlich beunruhigt sind.
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)
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.
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
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?
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.
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.
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.
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.
Ich möchte schönen Code schreiben.
[Python Cheet Sheet] Spezielle Methode So setzen Sie einen Unterstrich in die Markdown-Notation
Recommended Posts