Erfahren Sie mehr über die Magie von Python
Was ist die magische Python-Methode?
Die magische Methode ist so magisch wie ihr Name, sie kann Ihnen immer etwas geben, wenn Sie es brauchen Möglichkeiten, Ihre Ideen wahr werden zu lassen. Magische Methoden beziehen sich auf Methoden, die bereits in Python enthalten sind und von doppelten Unterstrichen umgeben sind. Diese Methoden werden automatisch aufgerufen, wenn bestimmte Operationen ausgeführt werden. Sie sind die Kristallisation der objektorientierten Weisheit von Python. Besonders für Anfänger ist es wichtig, die magischen Methoden von Python zu beherrschen.
Warum magische Python-Methoden verwenden?
Die Verwendung der magischen Methoden von Python kann Python freier machen, und magische Methoden können auch verwendet werden, wenn kein Umschreiben erforderlich ist. Sie werden unter der wirksam Wenn ein Umschreiben erforderlich ist, können Benutzer auch einige Methoden entsprechend ihren eigenen Anforderungen umschreiben, um ihre eigenen Erwartungen zu erfüllen. Und es ist bekannt, dass Python eine objektorientierte Sprache ist. Die grundlegende magische Methode von Python macht Python objektorientierter.
Name der Magic-Methode |
Beschreibung |
Grundlegende magische Methoden (häufiger verwendet) |
|
__new__(cls[, ...]) | 1. Die erste Methode, die beim Instanziieren eines Objekts aufgerufen wird 2. Seine Parameter werden zur Verarbeitung direkt an die Methode __init__ übergeben 3.我们一般不会重写该方法 |
__init__(self[, ...]) | 构造方法,初始化类的时候被调用 |
__del__(self) | 析构方法,当实例化对象被彻底销毁时被调用(实例化对象的所有指针都被销毁时被调用) |
__call__(self[, args...]) | 允许一个类的实例像函数一样被调用:x(a, b) 调用 x.__call__(a, b) |
__len__(self) | 定义当被 len() 调用时的行为 |
__repr__(self) | 定义当被 repr() 调用时的行为 |
__str__(self) | 定义当被 str() 调用时的行为 |
__bytes__(self) | 定义当被 bytes() 调用时的行为 |
__hash__(self) | 定义当被 hash() 调用时的行为 |
__bool__(self) | 定义当被 bool() 调用时的行为,应该返回 True 或 False |
__format__(self, format_spec) | 定义当被 format() 调用时的行为 |
属性相关的方法 | |
__getattr__(self, name) | 定义当用户试图获取一个不存在的属性时的行为 |
__getattribute__(self, name) | 定义当该类的属性被访问时的行为 |
__setattr__(self, name, value) | 定义当一个属性被设置时的行为 |
__delattr__(self, name) | 定义当一个属性被删除时的行为 |
__dir__(self) | 定义当 dir() 被调用时的行为 |
__get__(self, instance, owner) | 定义当描述符的值被取得时的行为 |
__set__(self, instance, value) | 定义当描述符的值被改变时的行为 |
__delete__(self, instance) | 定义当描述符的值被删除时的行为 |
比较操作符 | |
__lt__(self, other) | 定义小于号的行为:x < y 调用 x.__lt__(y) |
__le__(self, other) | 定义小于等于号的行为:x <= y 调用 x.__le__(y) |
__eq__(self, other) | 定义等于号的行为:x == y 调用 x.__eq__(y) |
__ne__(self, other) | 定义不等号的行为:x != y 调用 x.__ne__(y) |
__gt__(self, other) | 定义大于号的行为:x > y 调用 x.__gt__(y) |
__ge__(self, other) | 定义大于等于号的行为:x >= y 调用 x.__ge__(y) |
算数运算符 | |
__add__(self, other) | 定义加法的行为:+ |
__sub__(self, other) | 定义减法的行为:- |
__mul__(self, other) | 定义乘法的行为:* |
__truediv__(self, other) | 定义真除法的行为:/ |
__floordiv__(self, other) | 定义整数除法的行为:// |
__mod__(self, other) | 定义取模算法的行为:% |
__divmod__(self, other) | 定义当被 divmod() 调用时的行为 |
__pow__(self, other[, modulo]) | 定义当被 power() 调用或 ** 运算时的行为 |
__lshift__(self, other) | 定义按位左移位的行为:<< |
__rshift__(self, other) | 定义按位右移位的行为:>> |
__and__(self, other) | 定义按位与操作的行为:& |
__xor__(self, other) | 定义按位异或操作的行为:^ |
__or__(self, other) | 定义按位或操作的行为:| |
反运算(类似于运算方法) | |
__radd__(self, other) | 当被运算对象(左边的操作对象)不支持该运算时被调用 |
__rsub__(self, other) | 当被运算对象(左边的操作对象)不支持该运算时被调用 |
__rmul__(self, other) | 当被运算对象(左边的操作对象)不支持该运算时被调用 |
__rtruediv__(self, other) | 当被运算对象(左边的操作对象)不支持该运算时被调用 |
__rfloordiv__(self, other) | 当被运算对象(左边的操作对象)不支持该运算时被调用 |
__rmod__(self, other) | 当被运算对象(左边的操作对象)不支持该运算时被调用 |
__rdivmod__(self, other) | 当被运算对象(左边的操作对象)不支持该运算时被调用 |
__rpow__(self, other) | 当被运算对象(左边的操作对象)不支持该运算时被调用 |
__rlshift__(self, other) | 当被运算对象(左边的操作对象)不支持该运算时被调用 |
__rrshift__(self, other) | 当被运算对象(左边的操作对象)不支持该运算时被调用 |
__rxor__(self, other) | 当被运算对象(左边的操作对象)不支持该运算时被调用 |
__ror__(self, other) | 当被运算对象(左边的操作对象)不支持该运算时被调用 |
增量赋值运算 | |
__iadd__(self, other) | Definieren Sie das Verhalten der Zuweisungsaddition: += |
__isub__( self , other) | Definieren Sie das Verhalten der Zuweisungssubtraktion: -= |
__imul__(self, other) | Definieren Sie das Verhalten der Zuweisungsmultiplikation: *= |
__itruediv__(self, other) | Definieren Sie das Verhalten der Zuweisungs-True-Division: /= |
__ifloordiv__( self, other) | Definieren Sie das Verhalten der Zuweisung Ganzzahldivision: //= |
__imod__(self, other) | Definieren Sie das Verhalten der Zuweisung Modulo-Algorithmus: %= |
__ipow__(self, other[, modulo]) | Definieren Sie das Verhalten der Zuweisungsleistungsoperation: **= |
__ilshift__(self, other) | Definieren Sie das Verhalten der bitweisen Linksverschiebung der Zuweisung: <<= |
__irshift__(self, other ) | Definieren Sie das Verhalten der bitweisen Rechtsverschiebung der Zuweisung:>>= |
__iand__(self, other) | Definieren Sie das Verhalten von bitweise UND-Operation der Zuweisung: & = |
__ixor__(self, other) | Definieren Sie das Verhalten der Zuweisung bitweiser XOR-Operation: ^= |
__ior__ (self, other) | definiert das Verhalten der bitweisen ODER-Verknüpfung der Zuweisung: |= |
Unärer Operator | |
__neg__(self) | Definieren Sie das Verhalten des positiven Vorzeichens: +x |
__pos__(self ) | Definieren Sie das Verhalten negativer Zeichen: -x |
__abs__(self) | Definieren Sie das Verhalten beim Aufruf von abs() |
__invert__(self) | Definieren Sie das Verhalten der bitweisen Inversion: ~x |
Typkonvertierung | |
__complex__(self) | Definieren Sie das Verhalten beim Aufruf durch complex() (needs um den entsprechenden Wert zurückzugeben) |
__int__(self) | Definieren Sie das Verhalten beim Aufruf durch int() (muss den entsprechenden Wert zurückgeben) |
__float__(self) | Definieren Sie das Verhalten beim Aufruf durch float() (muss den entsprechenden Wert zurückgeben) |
__round__(self[ , n]) | Definieren Sie das Verhalten beim Aufruf durch Round() (muss den entsprechenden Wert zurückgeben) |
__index__(self) | 1 . Wenn das Objekt innerhalb eines Slice-Ausdrucks angewendet wird, implementieren Sie eine Ganzzahlumwandlung 2. Wenn Sie einen benutzerdefinierten numerischen Typ definieren, der beim Slicing verwendet werden kann, sollten Sie __index__ definieren 3. Wenn __index__ definiert ist, muss auch __int__ definiert werden und gibt denselben Wert zurück |
Kontextverwaltung (mit Anweisung) | |
__enter__(self) | 1 Definieren Sie das Initialisierungsverhalten bei Verwendung der with-Anweisung 2. Der Rückgabewert von __enter__ ist an das Ziel der with-Anweisung oder den Namen danach gebunden als |
__exit__(self, exc_type, exc_value, Traceback) | 1 . Definieren Sie, wann was der Kontextmanager tun soll, nachdem ein Codeblock ausgeführt oder beendet wurde 2. Wird im Allgemeinen verwendet, um Ausnahmen zu behandeln, Arbeiten zu bereinigen oder tägliche Arbeiten auszuführen, nachdem der Codeblock ausgeführt wurde |
Containertyp (im Allgemeinen Wird zum Betreiben von Containerklassen verwendet) | |
__len__(self) | Definieren Sie das Verhalten beim Aufruf durch len() (gibt im Allgemeinen die Länge der Containerklasse zurück). ) |
__getitem__(self, key) | definiert das Verhalten beim Abrufen des angegebenen Elements im Container, äquivalent zu self[key] |
__setitem__(self, key, value) | Definieren Sie das Verhalten beim Festlegen des angegebenen Elements im Container, äquivalent zu self[key] = value |
__delitem__(self, key) | definiert das Verhalten beim Löschen des angegebenen Elements im Container, was del self[key] entspricht |
__iter__(self) | definiert beim Iterieren des Containers. Das Verhalten von Elementen in |
__reversed__(self) | definiert das Verhalten beim Aufruf durch reversed() |
__contains__ (self, item) | Definieren Sie das Verhalten bei Verwendung des Member-Testoperators (in oder nicht in) |
Empfohlenes Lernen: Python-Video-Tutorial
Das obige ist der detaillierte Inhalt vonErfahren Sie mehr über die Magie von Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





PHP ist hauptsächlich prozedurale Programmierung, unterstützt aber auch die objektorientierte Programmierung (OOP). Python unterstützt eine Vielzahl von Paradigmen, einschließlich OOP, funktionaler und prozeduraler Programmierung. PHP ist für die Webentwicklung geeignet, und Python eignet sich für eine Vielzahl von Anwendungen wie Datenanalyse und maschinelles Lernen.

PHP eignet sich für Webentwicklung und schnelles Prototyping, und Python eignet sich für Datenwissenschaft und maschinelles Lernen. 1.PHP wird für die dynamische Webentwicklung verwendet, mit einfacher Syntax und für schnelle Entwicklung geeignet. 2. Python hat eine kurze Syntax, ist für mehrere Felder geeignet und ein starkes Bibliotheksökosystem.

VS -Code kann zum Schreiben von Python verwendet werden und bietet viele Funktionen, die es zu einem idealen Werkzeug für die Entwicklung von Python -Anwendungen machen. Sie ermöglichen es Benutzern: Installation von Python -Erweiterungen, um Funktionen wie Code -Abschluss, Syntax -Hervorhebung und Debugging zu erhalten. Verwenden Sie den Debugger, um Code Schritt für Schritt zu verfolgen, Fehler zu finden und zu beheben. Integrieren Sie Git für die Versionskontrolle. Verwenden Sie Tools für die Codeformatierung, um die Codekonsistenz aufrechtzuerhalten. Verwenden Sie das Lining -Tool, um potenzielle Probleme im Voraus zu erkennen.

VS -Code kann unter Windows 8 ausgeführt werden, aber die Erfahrung ist möglicherweise nicht großartig. Stellen Sie zunächst sicher, dass das System auf den neuesten Patch aktualisiert wurde, und laden Sie dann das VS -Code -Installationspaket herunter, das der Systemarchitektur entspricht und sie wie aufgefordert installiert. Beachten Sie nach der Installation, dass einige Erweiterungen möglicherweise mit Windows 8 nicht kompatibel sind und nach alternativen Erweiterungen suchen oder neuere Windows -Systeme in einer virtuellen Maschine verwenden müssen. Installieren Sie die erforderlichen Erweiterungen, um zu überprüfen, ob sie ordnungsgemäß funktionieren. Obwohl VS -Code unter Windows 8 möglich ist, wird empfohlen, auf ein neueres Windows -System zu upgraden, um eine bessere Entwicklungserfahrung und Sicherheit zu erzielen.

VS -Code -Erweiterungen stellen böswillige Risiken dar, wie das Verstecken von böswilligem Code, das Ausbeutetieren von Schwachstellen und das Masturbieren als legitime Erweiterungen. Zu den Methoden zur Identifizierung böswilliger Erweiterungen gehören: Überprüfung von Verlegern, Lesen von Kommentaren, Überprüfung von Code und Installation mit Vorsicht. Zu den Sicherheitsmaßnahmen gehören auch: Sicherheitsbewusstsein, gute Gewohnheiten, regelmäßige Updates und Antivirensoftware.

Python eignet sich besser für Anfänger mit einer reibungslosen Lernkurve und einer kurzen Syntax. JavaScript ist für die Front-End-Entwicklung mit einer steilen Lernkurve und einer flexiblen Syntax geeignet. 1. Python-Syntax ist intuitiv und für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet. 2. JavaScript ist flexibel und in Front-End- und serverseitiger Programmierung weit verbreitet.

PHP entstand 1994 und wurde von Rasmuslerdorf entwickelt. Es wurde ursprünglich verwendet, um Website-Besucher zu verfolgen und sich nach und nach zu einer serverseitigen Skriptsprache entwickelt und in der Webentwicklung häufig verwendet. Python wurde Ende der 1980er Jahre von Guidovan Rossum entwickelt und erstmals 1991 veröffentlicht. Es betont die Lesbarkeit und Einfachheit der Code und ist für wissenschaftliche Computer, Datenanalysen und andere Bereiche geeignet.

Im VS -Code können Sie das Programm im Terminal in den folgenden Schritten ausführen: Erstellen Sie den Code und öffnen Sie das integrierte Terminal, um sicherzustellen, dass das Codeverzeichnis mit dem Terminal Working -Verzeichnis übereinstimmt. Wählen Sie den Befehl aus, den Befehl ausführen, gemäß der Programmiersprache (z. B. Pythons Python your_file_name.py), um zu überprüfen, ob er erfolgreich ausgeführt wird, und Fehler auflösen. Verwenden Sie den Debugger, um die Debugging -Effizienz zu verbessern.
