1. Klasse definieren (Klasse Dog(object)) --> Instanzobjekt (d )
2. __init__() Konstruktor
3. self.name = name Klassenattribute, Mitgliedsvariablen
4 >
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') # 生成一个角色
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
r2.buy_gun('B13') print(r2.weapon) # 输出 Jack just bought B13 B22 # 可以发现武器依然是 B22
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 # 可以发现武器已经改变
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: 'Person' object has no attribute '__address'
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('Bigberg', 'Doctor', '8833421', 'hz') res = p1.get_private() print(res) # 输出 hz
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('Bigberg', 'Doctor', '8833421', 'hz') print(p1._Person__address) # 访问私有属性 print("----change----") p1._Person__address = 'BJ' # 修改私有属性 print(p1._Person__address) #输出 hz ----change---- BJ
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.
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!