Maison >développement back-end >Tutoriel Python >Introduction aux classes et attributs
1. Définir la classe (class Dog(object)) --> Instancier (d = Dog()) ---> )
2. Constructeur __init__()
3. self.name = nom des attributs de classe et des variables membres
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') # 生成一个角色
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'
3.2. La méthode get accède aux propriétés privées
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
sont des outils importants pour simplifier et optimiser les applications.
1. Héritage : la capacité des sous-classes à hériter des caractéristiques des classes parentes. Il incarne et étend le partage de méthodes de programmation orientées objet, permettant aux objets du même type de partager des données et du code de programme, améliorant ainsi la réutilisabilité des programmes. La classe parent est une classe qui peut être définie davantage pour dériver de nouvelles classes, et la sous-classe est une nouvelle classe établie en utilisant d'autres classes comme point de départ et en définissant des caractéristiques plus spécifiques. 2. Polymorphisme : certaines classes associées contiennent des méthodes portant le même nom, mais le contenu des méthodes peut être différent. Celui à appeler est déterminé au moment de l'exécution en fonction de la classe de l'objet. Le même message peut conduire à différentes actions lorsqu'il est reçu par différents objets. 3. Abstraction : extraire les caractéristiques distinctives d'une classe ou d'un objet sans traiter d'autres informations sur la classe ou l'objet.
4. Résumé
2. Accéder aux attributs privés : nom de l'objet._nom de la classe__nom de l'attribut (d._dog__sex)
3. Fournir un accès à l'interface externe en lecture seule :
def. get_sex(self):
return self.__sex
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!