Heim Backend-Entwicklung Python-Tutorial Erfahren Sie mehr über die Magie von Python

Erfahren Sie mehr über die Magie von Python

Nov 26, 2019 pm 05:58 PM
python 魔法方法

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!

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

Video Face Swap

Video Face Swap

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

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)

PHP und Python: Verschiedene Paradigmen erklärt PHP und Python: Verschiedene Paradigmen erklärt Apr 18, 2025 am 12:26 AM

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.

Wählen Sie zwischen PHP und Python: Ein Leitfaden Wählen Sie zwischen PHP und Python: Ein Leitfaden Apr 18, 2025 am 12:24 AM

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.

Kann Visual Studio -Code in Python verwendet werden Kann Visual Studio -Code in Python verwendet werden Apr 15, 2025 pm 08:18 PM

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.

Kann gegen Code in Windows 8 ausgeführt werden Kann gegen Code in Windows 8 ausgeführt werden Apr 15, 2025 pm 07:24 PM

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.

Ist die VSCODE -Erweiterung bösartig? Ist die VSCODE -Erweiterung bösartig? Apr 15, 2025 pm 07:57 PM

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 vs. JavaScript: Die Lernkurve und Benutzerfreundlichkeit Python vs. JavaScript: Die Lernkurve und Benutzerfreundlichkeit Apr 16, 2025 am 12:12 AM

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 und Python: Ein tiefes Eintauchen in ihre Geschichte PHP und Python: Ein tiefes Eintauchen in ihre Geschichte Apr 18, 2025 am 12:25 AM

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.

So führen Sie Programme in der terminalen VSCODE aus So führen Sie Programme in der terminalen VSCODE aus Apr 15, 2025 pm 06:42 PM

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.

See all articles