1. 程式人生 > >python基礎之 面向對象

python基礎之 面向對象

基礎 學習 %s 對象方法 www. 這就是 alex 實例化 int

1.什麽是面向對象?

在大學學習c#的時候接觸面向對象,知道好像有什麽方法,屬性,人狗大戰啥的。但是都忘記了,也不知道面向對象到底是個啥!
在python中一切都是對象,linux中一切都是文件(突然想起來了)

什麽是class?什麽是對象?什麽是屬性?
人狗大戰走起!!!
class People:
   a =1000 #靜態變量,是所有對象共同使用的值,通過類名來調用
def __init__(self, name, hp, ad, sex): #等價於People(),實例化這個類,主動調用。誰在實例化這個類,self這個參數就屬於誰
     #self指向了一塊內存地址,裏面存的是字典,用於接收傳遞進來的參數,然後自動返回給調用者
     #調用__init__,自動傳入了self函數,其他參數都是按照順序傳遞進來的,並且添加到這個字典中
     #執行__init__函數
     #返給給調用者self self.name
= name #實例變量 對象屬性 self.hp = hp self.ad = ad self.sex = sex def fight(self, dog): #動態變量 對象方法 dog.hp -= self.ad print("%s打了%s,%s掉了%s血" % (self.name, dog.name, dog.name, self.ad))
class Dog(): def __init__(self, name, hp, ad, sex): self.name = name self.hp = hp self.ad = ad self.sex = sex def bite(self, people): people.hp -= self.ad print("%s咬了%s,%s掉了%s血" % (self.name, people.name, people.name, self.ad)) jordan
= People("alex", 300, 20, ) #創建一個對象也是在創建一個實例 james = Dog(hei, 400, 10, ) jordan.fight(james) #對象名調用類裏面的函數,並將調用者的名字和參數傳遞到方法裏面,jordan=self
jordan.hp = 20000 #通過對象名添加屬性
del jordan.sex #通過對象名刪除屬性
print(james.__dict__)

1.class:用於定義一個具有相同方法和屬性的一類事物
2.對象:根據一個模板(class)刻畫出來的一個實體,具有模板裏面的一切方法和屬性
3.不同的對象有不同的屬性,比如我們都有手,但是我的手比你的好看,這就是屬性


查看類當中的所有變量:print(類名.__dict__)
查看對象當中的指定變量:
  方法一:print(對象.__dict__[‘變量‘])
  方法二:print(對象.變量) ---常用


面向對象編程:把屬性和動作封裝到一個類型當中,就是面向對象編程(通過Dog類生成好多具有Dog類屬性和方法的狗)

返回系列

python基礎之 面向對象