2018-07-03-Python全棧開發day24-面向對象設計
阿新 • • 發佈:2018-07-04
pre 使用 設計 turn 修改 self ans shandong 過程
面向對象:
根據現實中存在的東西,模擬出其特征,用來描述特定對象。
1.用函數來完成面向對象
1 def school(name,addr):#學校具有名稱和地址 2 def dict_(name,addr): 3 dict_={ 4 ‘name‘:name, 5 ‘addr‘:addr, 6 ‘kao_shi‘:kao_shi,#當選取對應的key值時,運行這個函數 7 ‘zhao_sheng‘:zhao_sheng 8 } 9return dict_ 10 def kao_shi(): 11 print(‘now is kaoshi‘) 12 def zhao_sheng(): 13 print(‘now is zhaosheng‘) 14 return dict_(name,addr) 15 #運行 16 17 p1=school(‘yehiabin‘,‘shandong‘) 18 p2=p1[‘kao_shi‘]()#從中選取函數進行運行 19 #類的各種屬性,其實也是在這個字典之中的,調用的時候,是取對應的key值
這是用函數來完成面向對象設計,用school來模擬一個學校的特性,在特征內定義它的數據屬性和函數屬性,然後可以進行調用,給school傳值的時候,也就是一個生成實例的過程
2.類與實例
在python中,用class來定義類,類具有數據屬性和函數屬性,為了節省內存,實例只具有數據屬性,在需要函數屬性的時候向類中進行調取。
2.1 屬性的增刪改查
2.1.1 查看
class China:#聲明類的時候,一般以大寫開頭 def __init__(self,age): self.age=age#給self賦予了一個age方法,值為輸入的age,,p.age=age name=‘yehaibin‘#數據屬性#進行增刪改查 def qiong(self): print(‘zhengzaitutan‘,self.age) #查看 print(China.name)
2.1.2 修改
class China:#聲明類的時候,一般以大寫開頭 def __init__(self,age): self.age=age#給self賦予了一個age方法,值為輸入的age,,p.age=age name=‘yehaibin‘#數據屬性#進行增刪改查 def qiong(self): print(‘zhengzaitutan‘,self.age) China.name=‘heiheihie‘
2.1.3 刪除
class China:#聲明類的時候,一般以大寫開頭 def __init__(self,age): self.age=age#給self賦予了一個age方法,值為輸入的age,,p.age=age name=‘yehaibin‘#數據屬性#進行增刪改查 def qiong(self): print(‘zhengzaitutan‘,self.age) del China.name
2.1.4 增加
class China:#聲明類的時候,一般以大寫開頭 def __init__(self,age): self.age=age#給self賦予了一個age方法,值為輸入的age,,p.age=age name=‘yehaibin‘#數據屬性#進行增刪改查 def qiong(self): print(‘zhengzaitutan‘,self.age) def eat(self,name): print(‘%s adssa%s‘ %(self.age,name)) China.eat=eat China.gender=‘nans‘
2.2 類與實例
1. 實例在調用方法時,會自動傳入self值,類不會
2.凡是使用.來調取方法的,都必須遵從類的方法,也就是無法從全局變量中引用
name=‘123‘ class Test: name=‘567‘ def test(): print(name) p1=Test.test print(p1) --- 123#因為name是直接使用的,所以會調用全局變量,
ame=‘123‘ class Test: name=‘567‘ def test(self): print(self.name) p1=Test() print(p1.test())#此時調用了類的方法,這是類內的作用域有效果
3.在類中可以看做函數的作用域
4.
2018-07-03-Python全棧開發day24-面向對象設計