py 5.24
                            
                            
                            #面向對象
#類:模子。Person,不具體。
#實例/對象:依托于類產生的具體的帶有屬性的。alex
#實例化:產生對象的過程。 alex = Person()
#類:
#分為靜態屬性(一般的變量)。動態屬性(函數)
# 查看類中的靜態屬性:類.變量名
#查看類中的動態屬性:類.函數名(或方法名)--->得到的是函數的內存地址。
#調用動態屬性:類.函數名()
#創建類:class 類名(第一個字母必須大寫,后面沒有括號):
#創建對象:
# alex = Person(參數):  #內存中開辟一個屬于對象的內存空間
# 同時類中會自動執行 def __init__(self):函數    --->外面的參數會通過這里傳進來。
#self也會指向剛才對象打開的內存空間,self與alex內存地址相同。
#給__init__(self)傳參并定義self的變量值,存在內存地址中,執行結束后將結果返回給對象alex。
#這樣對象就產生了,可以用對象查看其中的各種屬性或者操作其它類中的方法。
#人狗大戰:
# class Person:     #建立一個類
#     def __init__(self,name,sex,hp,ad):  #初始化方法
#         self.name = name
#         self.sex = sex
#         self.hp = hp
#         self.ad = ad                    #執行結束將各個變量值傳給對象。(因為在同一個內存地址)
#     def attack(self,dog):              #類中的一個方法。可以用對象直接調用,必須用這個類實例化的對象來調用。
#         print('%s攻擊了%s'%(self.name,dog.name))
#         print('%s掉了%s點血,還剩%s點血'%(dog.name,self.ad,dog.hp-self.ad))
#
# class Dog:
#     def __init__(self, name, kind, hp, ad):
#         self.name = name
#         self.kind = kind
#         self.hp = hp
#         self.ad = ad
#     def bite(self,person):
#         print('%s咬了%s'%(self.name,person.name))
#         if person.hp <= self.hp:
#             person.hp = 0
#             print('%s血量為0,game over'%person.name)
#         else:
#             print('%s掉了%s點血,還剩%s點血' % (person.name, person.ad, person.hp - self.ad))
#
# alex = Person('alex','男',50,2)
# egon = Person('egon','女',60,5)
# taibai = Dog('taibai','taidy',60,90)
# # taibai.bite(egon)
# alex.attack(taibai)            #用對象直接調用類中的方法,省掉再傳對象參數給self的麻煩。
#對象調用類中的屬性:
#類中的屬性存在類開辟的內存空間中,其它各個對象會自動產生一個變量指針指向類的內存地址,調用的時候直接根據指針來查找即可。
# class Test:
#     country = 'china'
#     lis = ['span']
#
# obj = Test()         #創建了一個不帶參數的對象。
# print(obj.country)   #此處便是對象通過指針在類中找到的屬性。
# obj.country = 'England' #表示在對象本身的內存空間中增加一個country屬性,并不改變類中的屬性。
# print(obj.country)
# obj.lis = ['Japan']
# obj.lis[0] = 'England'   #改變屬性時,對象會先在自己的內存空間找是否存在這個屬性,如果有,則改變,如果沒有則去類中找。
# print(obj.lis)            #obj中剛剛創建了lis屬性,所以改變的是自己。
# obj.lis[0] = 'England'    #如果沒有lis這個屬性,此處改的便是類中的屬性。
# print(obj.lis)
# print(Test.lis)
#總結:靜態屬性是所有對象共享的,所以如果要修改靜態屬性,最好用類直接修改最準確
#類名一般用來:查看或修改靜態屬性。
#              實例化對象
#對象名一般用來:查看或修改對象的屬性
#                調用方法  View Code 
                        
                        
                        ?
一、面向對象
?
轉載于:https://www.cnblogs.com/liujjpeipei/p/9083286.html
總結
                            
                        - 上一篇: php 递归中的全局变量,PHP中递归的
 - 下一篇: php $y=$x^$y;,PHP语法