python學習筆記(27) 面向對象
class Person:
country = ‘China‘ #類屬性 靜態屬性 可被類和對象調用 可用Person.country = xx修改 對於不可變類型,對象只能改自己的,不能改類的;可變數據類型都能[‘English‘]與‘English‘
def __init__(self,*args): #初始化方法,self對象必須傳
self.name = args[0]
self.hp = args[1]
def walk(self,n): #一般必須傳self參數且寫在第一個,後面可以傳其他參數
print(‘%s走走走,走了%s步‘%(self.name,n))
print(Person.country) #查看類中的靜態屬性,不需要實例化
alex = Person(‘渣渣輝‘,100) #alex對象 實例化
print(alex.__dict__) #查看所有屬性
alex.walk(5) #等於Person.walk(alex,5)
Person.__dict__[‘country‘]
alex.__dict__[‘name‘] #可以直接調用
alex.__dict__[‘name‘] = ‘二哥‘ #可以用字典形式更改,但是類的字典只能看不能改
#過程:
#類名() 創造出一個對象,創建一個self對象(self是一個可以存儲很多屬性的大字典)
#調用init方法,類命括號裏的參數會被這裏接收
#執行init方法
#返回self
#對象能做的事情
#查看屬性
#調用方法
#類能做的事情
#實例化
#調用方法 #需要自己傳self參數
#調用類中的屬性,即靜態屬性
#__dict__ 對於類中的名字只能看,不能操作
#################################################
class Dog:
def __init__(self,name1,hp1,att1,kind1):
self.name = name1
self.hp = hp1
self .att= att1
self.kind = kind1
def bite(self,person):
person.hp -= self.att
class Person:
def __init__(self,name,hp,att,kind):
self.name = name
self.hp = hp
self .att= att
self.kind = kind
def attack(self,dog):
dog.hp -= self.att
jin = Dog(‘金老板‘,1000,200,‘未知‘)
alex = Person(‘Alex‘,999,199,‘未知‘)
jin.bite(alex)
python學習筆記(27) 面向對象