1. 程式人生 > >python學習筆記(27) 面向對象

python學習筆記(27) 面向對象

int nbsp init 數據 事情 括號 查看屬性 第一個 *args

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) 面向對象