


Detaillierte Einführung in die objektorientierte Programmierung mit Python
1. Was ist objektorientiert
Objektorientiert (oop) ist eine abstrakte Methode, um die Welt zu verstehen, und alles besteht aus Objekten. Bei der Programmierung handelt es sich um eine Methode zur Programmentwicklung, bei der Objekte als Grundeinheit des Programms verwendet werden.
2. Der Unterschied zwischen objektorientiert und prozessorientiert
Der Kern von prozessorientiert ist das Wort „Prozess“. Probleme lösen. Prozessorientiert Die Methode zum Entwerfen eines Programms ähnelt dem Entwerfen eines Fließbands, einer mechanischen Denkweise
Vorteile: Komplexe Probleme werden vereinfacht und rationalisiert
Nachteile: schlechte Skalierbarkeit
Zu den Hauptanwendungsszenarien gehören: Linux-Kernel, Git und HTTP-Dienste
Objektorientierte Programmierung, der Kern ist das Objekt und das Objekt ist die Kombination von Merkmalen (Variablen) und Fähigkeiten ( Funktionen).
Vorteile: Lösen Sie das Problem der schlechten Programmskalierbarkeit
Nachteile: Schlechte Steuerbarkeit, keine Vorhersage des Endergebnisses möglich
Das Hauptanwendungsszenario ist Software mit sich häufig ändernden Anforderungen ist, mit Benutzern Software mit häufigen Interaktionen
Es ist zu beachten, dass objektorientierte Programmierung nicht alle Probleme löst, sondern nur zur Lösung der Skalierbarkeit verwendet wird. Natürlich ist in der heutigen Internet-Software die Skalierbarkeit das Wichtigste
3. Das Konzept von Objekten und Klassen
In Python ist alles ein Objekt, und ein Objekt sollte seine eigenen Attribute haben. und Es ist ein Feature und hat seine eigene Funktion, das heißt eine Methode
In Python werden Features durch Variablen und Funktionen durch Funktionen dargestellt, sodass das Objekt eine Kombination aus Variablen und Funktionen ist
und aus jeder Klasse wird eine Klasse aus verschiedenen Objekten mit denselben Eigenschaften und Funktionen extrahiert. Daher ist eine Klasse eine Kombination gemeinsamer Eigenschaften und Funktionen einer Reihe von Objekten
Definieren wir a Klasse mit Methoden und Das Definieren einer Funktion ist etwas ähnlich:
#定义一个中国人的类class Chinese:#共同的特征country='China'#共同的技能def talk(self):print('is talking Chinese')def eat(self):print('is eating Chinese food')
Auf diese Weise haben wir eine Klasse definiert. Hinweis: 1. Verwenden Sie das Klassenschlüsselwort
2. Klassenname Im Allgemeinen wird der erste Buchstabe großgeschrieben und es sind keine Klammern vor dem Doppelpunkt erforderlich, was sich von der Funktionsdefinition unterscheidet
3. Im Gegensatz zu Funktionen führen Klassen den Code in der Klasse aus während der Definitionsphase
4. Klassen haben zwei Attribute. Die gemeinsamen Merkmale werden Datenattribute genannt und die gemeinsamen Funktionen werden Funktionsattribute genannt
Wie generiert man ein Objekt aus dieser Klasse? Instanziierung:
p1=Chinese() p2=Chinese()
Wir können daraus schließen, dass es in einem Programm, egal was in der realen Welt passiert, tatsächlich zuerst eine Klasse und dann Objekte gibt
Wir haben zwei Objekte durch Instanziierung erhalten, aber es gibt ein Problem. Die Eigenschaften und Funktionen der beiden Objekte sind völlig unvereinbar mit dem Konzept, dass alle Objekte unterschiedlich sein sollten. und so eine Welt ist interessant
Tatsächlich haben wir bei der Definition der Klasse vergessen, die Funktion __init__() zu definieren. Die richtige Definitionsmethode sollte so aussehen:
#定义一个中国人的类class Chinese:#共同的特征country='China'#初始化def __init__(self,name,age): self.name=name #每个对象都有自己的名字self.age=age #每个对象都有自己的年龄#共同的技能def talk(self):print('is talking Chinese')def eat(self):print('is eating Chinese food')#实例化的方式产生一个对象p1=Chinese('zhang',18)
Der Klassenname mit Klammern ist die Instanziierung, die automatisch die Ausführung der __init__-Funktion auslöst. Sie können damit Ihre eigenen Eigenschaften für jedes Objekt anpassen.
Bei der Definition der __init__-Funktion gibt es drei Parameter in Klammern, aber wenn wir den Aufruf instanziieren, übergeben wir nur zwei Werte. Warum gibt es keinen Fehler? Dies liegt daran, dass die Funktion von self darin besteht, das Objekt selbst beim Instanziieren automatisch an den ersten Parameter der Funktion __init__ zu übergeben. Natürlich ist self nur ein Name, wenn Sie es blind schreiben um es zu verstehen.
Achtung. Dieser automatische Wertübertragungsmechanismus spiegelt sich nur bei der Instanziierung wider. Eine Klasse hat auch die Funktion einer Attributreferenz Aus dem obigen Fehlercode geht hervor, dass es bei der Referenzierung von Attributen keine automatische Wertübertragung gibt
#引用类的数据属性print(Chinese.country) #China#引用类的函数属性# Chinese.talk()#TypeError: talk() missing 1 required positional argument: 'self'print(Chinese.talk) #<function Chinese.talk at 0x000001BC5F13D1E0>Chinese.talk('self') #is talking Chinese#增加属性Chinese.color='yellow'#删除属性del Chinese.color
angezeigt werden können Der obige Code Wir kennen die angezeigten Ergebnisse. Drucken Sie den Namensraum des instanziierten Objekts aus und zeigen Sie nur seine eigenen eindeutigen Attribute an. Wenn Sie die mit anderen Objekten geteilten Attribute finden möchten, müssen Sie zum Klassen-Namensraum gehen, um
Es gibt noch eine andere Frage: Es gibt kein Funktionsattribut im Namensraum des Objekts, aber sind die von verschiedenen Objekten angegebenen Funktionen dieselbe Funktion?可以看到,并不是,他们的内存地址都不一样。而且注意bound method,是绑定方法
对象本身只有数据属性,但是Python的class机制将类的函数也绑定到对象上,称为对象的方法,或者叫绑定方法。绑定方法唯一绑定一个对象,同一个类的方法绑定到不同的对象上,属于不同的方法。我们可以验证一下:
当用到这个函数时:类调用的是函数属性,既然是函数,就是函数名加括号,有参数传参数
而对象用到这个函数时,对象没有函数属性,他是绑定方法,绑定方法怎么用呢,也是直接加括号,但不同的是,绑定方法会默认把对象自己作为第一个参数
class Chinese: country='China'def __init__(self,name,age): self.name=name self.age=age def talk(self):print('%s is talking Chinese'%self.name)def eat(self):print('is eating Chinese food') p1=Chinese('zhang',18) p2=Chinese('li',19) Chinese.talk(p1) #zhang is talking Chinesep1.talk() #zhang is talking Chinese
只要是绑定方法,就会自动传值!其实我们以前就接触过这个,在python3中,类型就是类。数据类型如list,tuple,set,dict这些,实际上也都是类,我们以前用的方法如l1.append(3),还可以这样写:l1.append(l1,3)
未完待续。。。
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die objektorientierte Programmierung mit 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.

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.

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.

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.

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.

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.

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.
