Inhaltsverzeichnis
1. Übersicht" >1. Übersicht
" > 2.1 Auf Klasseneigenschaften zugreifen Methode
" > 2.1 Ändern Sie die Eigenschaften des Objekts
" >3. Private Attribute
" >3.1 private Attribute
" >3.2. Die get-Methode greift auf private Eigenschaften zu
" >3.3 Erzwungener Zugriff auf private Attribute
Heim Backend-Entwicklung Python-Tutorial Einführung in Klassen und Attribute

Einführung in Klassen und Attribute

Jul 21, 2017 pm 02:14 PM
特性

1. Übersicht

1. Klasse definieren (Klasse Dog(object)) --> Instanzobjekt (d )

2. __init__() Konstruktor

3. self.name = name Klassenattribute, Mitgliedsvariablen

4 >

2. Auf Klasseneigenschaften zugreifen

class Role(object):
    def __init__(self, name, role, weapon, life_value=100, money=15000):
        self.name = name
        self.role = role
        self.weapon = weapon
        self.life_value = life_value
        self.money = money

    def shot(self):
        print("%s is shooting..." % self.name)

    def got_shot(self):
        print("ah...,%s got shot..." % self.name)

    def buy_gun(self, gun_name):
        print("%s just bought %s" % (self.name,gun_name))


r1 = Role('Alex', 'police', 'AK47')  # 生成一个角色
r2 = Role('Jack', 'terrorist', 'B22')   # 生成一个角色
Nach dem Login kopieren
 

2.1 Auf Klasseneigenschaften zugreifen Methode

Wir verwenden das Instanzobjekt . Eigenschaften/Methoden für den Zugriff auf

r1.shot()    #  调用shot 方法
r2.buy_gun('B13')  # 调用 buy_gun的方法并传参
print(r1.role)   # 打印类的属性

# 输出

Alex is shooting...
Jack just bought B13
police
Nach dem Login kopieren

 2.1 Ändern Sie die Eigenschaften des Objekts

Im obigen Beispiel haben wir die Waffe für den Charakter r2 geändert, nämlich B22 --> B13. Aber tatsächlich, wenn wir die Waffenattribute des Charakters r2 nennen, werden wir feststellen, dass sich seine Waffe nicht geändert hat:

r2.buy_gun('B13')
print(r2.weapon)

# 输出
Jack just bought B13
B22       # 可以发现武器依然是 B22
Nach dem Login kopieren
Tatsächlich können wir die Attribute von direkt ändern das Objekt beim Kauf der Waffe:

def buy_gun(self, gun_name):
      print("%s just bought %s" % (self.name, gun_name))
      self.weapon = gun_name    # 在方法内改变属性



r2.buy_gun('B13')
print(r2.weapon)

#输出
Jack just bought B13
B13    # 可以发现武器已经改变
Nach dem Login kopieren
 

3. Private Attribute

3.1 private Attribute

Sobald die Attribute einer Klasse als private Attribute definiert sind, können sie nicht mehr extern aufgerufen oder beliebig geändert werden. Private Eigenschaften können nur innerhalb der Klasse verwendet werden.

class Person(object):

    def __init__(self, name, job, phone, address):
        self.name = name
        self.job = job
        self.phone = phone
        self.__address = address   # 定义一个私有属性

    def sayhi(self):
        print("hell,%s" % self.name)

p1 = Person('Bigberg', 'Doctor', '8833421', 'hz')
print(p1.name)
print(p1.__address)   # 访问私有属性

# 输出

Bigberg
  File "G:/python/untitled/study6/类的私有属性.py", line 17, in <module>
    print(p1.__address)
AttributeError: &#39;Person&#39; object has no attribute &#39;__address&#39;
Nach dem Login kopieren
Das Ergebnis der Operation ist, dass auf den Attributnamen zugegriffen werden kann, beim direkten Zugriff auf das private Attribut self.__address wird jedoch ein Fehler gemeldet. Wenn Sie jedoch andere Methoden verwenden, können Sie trotzdem darauf zugreifen.

3.2. Die get-Methode greift auf private Eigenschaften zu

Auf private Eigenschaften kann nicht direkt von außerhalb zugegriffen werden, sie können jedoch innerhalb der Klasse aufgerufen werden. So können wir eine Methode definieren, um private Eigenschaften abzurufen.

class Person(object):

    def __init__(self, name, job, phone, address):
        self.name = name
        self.job = job
        self.phone = phone
        self.__address = address

    def get_private(self):
        return self.__address

    def sayhi(self):
        print("hell,%s" % self.name)

p1 = Person(&#39;Bigberg&#39;, &#39;Doctor&#39;, &#39;8833421&#39;, &#39;hz&#39;)
res = p1.get_private()
print(res)

# 输出
hz
Nach dem Login kopieren
 

 

3.3 Erzwungener Zugriff auf private Attribute

Wir können auch eine Methode verwenden, um den Zugriff auf private Attribute zu erzwingen Attribute und ändern sogar den Wert privater Eigenschaften. Methode: Objektname._Klassenname__Attributname.

class Person(object):

    def __init__(self, name, job, phone, address):
        self.name = name
        self.job = job
        self.phone = phone
        self.__address = address

    def get_private(self):
        return self.__address

    def sayhi(self):
        print("hell,%s" % self.name)

p1 = Person(&#39;Bigberg&#39;, &#39;Doctor&#39;, &#39;8833421&#39;, &#39;hz&#39;)

print(p1._Person__address)   # 访问私有属性

print("----change----")
p1._Person__address = &#39;BJ&#39;    # 修改私有属性
print(p1._Person__address)

#输出
hz
----change----
BJ
Nach dem Login kopieren
 

Kurse sind wichtige Werkzeuge zur Vereinfachung und Optimierung von Anwendungen. 1. Vererbung: die Fähigkeit von Unterklassen, die Eigenschaften von übergeordneten Klassen zu erben. Es verkörpert und erweitert die gemeinsame Nutzung objektorientierter Programmiermethoden und ermöglicht es Objekten desselben Typs, Daten und Programmcode gemeinsam zu nutzen, wodurch die Wiederverwendbarkeit von Programmen verbessert wird. Die übergeordnete Klasse ist eine Klasse, die weiter definiert werden kann, um neue Klassen abzuleiten, und die Unterklasse ist eine neue Klasse, die durch die Verwendung anderer Klassen als Ausgangspunkt und die Definition spezifischerer Merkmale erstellt wird.
2. Polymorphismus: Einige verwandte Klassen enthalten Methoden mit demselben Namen, der Inhalt der Methoden kann jedoch unterschiedlich sein. Welcher aufgerufen werden soll, wird zur Laufzeit anhand der Klasse des Objekts bestimmt. Dieselbe Nachricht kann zu unterschiedlichen Aktionen führen, wenn sie von verschiedenen Objekten empfangen wird.
3. Abstraktion: Extrahieren Sie die charakteristischen Merkmale einer Klasse oder eines Objekts, ohne andere Informationen über die Klasse oder das Objekt zu verarbeiten.

4. Zusammenfassung

1. Private Attribute definieren: self.__private_attr_name = private_attr_name

2 Auf private Attribute zugreifen: Objektname._Klassenname__Attributname (d._dog__sex)

3. Externen schreibgeschützten Schnittstellenzugriff bereitstellen:

def get_sex(self):

return self.__sex

Das obige ist der detaillierte Inhalt vonEinführung in Klassen und Attribute. 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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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)

Einführung in die Unterschiede zwischen der Win7-Home-Version und der Win7-Ultimate-Version Einführung in die Unterschiede zwischen der Win7-Home-Version und der Win7-Ultimate-Version Jul 12, 2023 pm 08:41 PM

Jeder weiß, dass es viele Versionen des Win7-Systems gibt, z. B. die Win7-Ultimate-Version, die Win7-Professional-Version, die Win7-Home-Version usw. Viele Benutzer sind zwischen der Home-Version und der Ultimate-Version verwickelt und wissen nicht, welche Version sie wählen sollen. Deshalb werde ich Ihnen heute die Unterschiede zwischen Win7 Family Meal und Win7 Ultimate erläutern. 1. Experience Different Home Basic Edition macht Ihre täglichen Abläufe schneller und einfacher und ermöglicht Ihnen einen schnelleren und bequemeren Zugriff auf Ihre am häufigsten verwendeten Programme und Dokumente. Home Premium bietet Ihnen das beste Unterhaltungserlebnis und macht es einfach, Ihre Lieblingsfernsehsendungen, Fotos, Videos und Musik zu genießen und zu teilen. Die Ultimate Edition integriert alle Funktionen jeder Edition und verfügt über alle Unterhaltungsfunktionen und professionellen Features von Windows 7 Home Premium.

Beherrschen Sie die Schlüsselkonzepte von Spring MVC: Verstehen Sie diese wichtigen Funktionen Beherrschen Sie die Schlüsselkonzepte von Spring MVC: Verstehen Sie diese wichtigen Funktionen Dec 29, 2023 am 09:14 AM

Verstehen Sie die Hauptfunktionen von SpringMVC: Um diese wichtigen Konzepte zu beherrschen, sind spezifische Codebeispiele erforderlich. SpringMVC ist ein Java-basiertes Framework für die Entwicklung von Webanwendungen, das Entwicklern beim Aufbau flexibler und skalierbarer Strukturen durch das Architekturmuster Model-View-Controller (MVC) hilft. Internetanwendung. Wenn wir die wichtigsten Funktionen von SpringMVC verstehen und beherrschen, können wir unsere Webanwendungen effizienter entwickeln und verwalten. In diesem Artikel werden einige wichtige Konzepte von SpringMVC vorgestellt

Wählen Sie je nach Bedarf und Funktionen die passende Go-Version Wählen Sie je nach Bedarf und Funktionen die passende Go-Version Jan 20, 2024 am 09:28 AM

Mit der rasanten Entwicklung des Internets werden Programmiersprachen ständig weiterentwickelt und aktualisiert. Unter ihnen hat die Go-Sprache als Open-Source-Programmiersprache in den letzten Jahren große Aufmerksamkeit erregt. Die Go-Sprache ist so konzipiert, dass sie einfach, effizient, sicher und leicht zu entwickeln und bereitzustellen ist. Es zeichnet sich durch hohe Parallelität, schnelle Kompilierung und Speichersicherheit aus und wird daher häufig in Bereichen wie Webentwicklung, Cloud Computing und Big Data eingesetzt. Derzeit sind jedoch verschiedene Versionen der Go-Sprache verfügbar. Bei der Auswahl einer geeigneten Go-Sprachversion müssen wir sowohl Anforderungen als auch Funktionen berücksichtigen. Kopf

Gibt es in Golang klassenähnliche objektorientierte Funktionen? Gibt es in Golang klassenähnliche objektorientierte Funktionen? Mar 19, 2024 pm 02:51 PM

In Golang (Go-Sprache) gibt es kein Konzept einer Klasse im herkömmlichen Sinne, es stellt jedoch einen Datentyp namens Struktur bereit, durch den objektorientierte Funktionen ähnlich wie Klassen erreicht werden können. In diesem Artikel erklären wir, wie Strukturen zur Implementierung objektorientierter Funktionen verwendet werden, und stellen konkrete Codebeispiele bereit. Definition und Verwendung von Strukturen Werfen wir zunächst einen Blick auf die Definition und Verwendung von Strukturen. In Golang können Strukturen über das Schlüsselwort type definiert und dann bei Bedarf verwendet werden. Strukturen können Attribute enthalten

Was sind die drei Merkmale von 5g? Was sind die drei Merkmale von 5g? Dec 09, 2020 am 10:55 AM

Die drei Merkmale von 5g sind: 1. Hohe Geschwindigkeit; in praktischen Anwendungen ist die Geschwindigkeit des 5G-Netzwerks mehr als zehnmal so hoch wie die des 4G-Netzwerks. 2. Geringe Latenz: Die Latenz des 5G-Netzwerks beträgt etwa zehn Millisekunden und ist damit schneller als die menschliche Reaktionsgeschwindigkeit. 3. Breite Verbindung; die Entstehung des 5G-Netzwerks wird in Kombination mit anderen Technologien eine neue Szene des Internet of Everything schaffen.

C++-Funktionstypen und -merkmale C++-Funktionstypen und -merkmale Apr 11, 2024 pm 03:30 PM

C++-Funktionen haben die folgenden Typen: einfache Funktionen, konstante Funktionen, statische Funktionen und virtuelle Funktionen; zu den Funktionen gehören: Inline-Funktionen, Standardparameter, Referenzrückgaben und überladene Funktionen. Beispielsweise verwendet die Funktion „calculeArea“ π, um die Fläche eines Kreises mit einem bestimmten Radius zu berechnen und gibt sie als Ausgabe zurück.

Was sind die Merkmale von Java? Was sind die Merkmale von Java? Aug 09, 2023 pm 03:05 PM

Die Merkmale von Java sind: 1. Einfach und leicht zu erlernen; 2. Objektorientiert, wodurch der Code wiederverwendbar und wartbar wird; 3. Plattformunabhängig, auf verschiedenen Betriebssystemen lauffähig; 4. Speicherverwaltung durch automatische Müllabfuhr; Sammelmechanismus: Speicher verwalten; 5. Starke Typprüfung, Variablen müssen ihren Typ vor der Verwendung deklarieren; 6. Sicherheit, die den unbefugten Zugriff und die Ausführung von Schadcode verhindern kann; Programm; 8. Ausnahmebehandlung kann Programmabstürze vermeiden; 9. Eine große Anzahl von Entwicklungsbibliotheken und Frameworks; 10. Open-Source-Ökosystem;

Beherrschen Sie die wichtigsten Funktionen und Anwendungsszenarien der Golang-Middleware Beherrschen Sie die wichtigsten Funktionen und Anwendungsszenarien der Golang-Middleware Mar 20, 2024 pm 06:33 PM

Als schnelle und effiziente Programmiersprache wird Golang auch häufig im Bereich der Webentwicklung eingesetzt. Unter anderem kann Middleware als wichtiges Entwurfsmuster Entwicklern dabei helfen, Code besser zu organisieren und zu verwalten sowie die Wiederverwendbarkeit und Wartbarkeit von Code zu verbessern. In diesem Artikel werden die wichtigsten Funktionen und Anwendungsszenarien der Middleware in Golang vorgestellt und ihre Verwendung anhand spezifischer Codebeispiele veranschaulicht. 1. Das Konzept und die Funktion von Middleware. Als Plug-In-Komponente wird Middleware in der Anforderungs-Antwort-Verarbeitungskette der Anwendung eingesetzt

See all articles