1. 程式人生 > >2018-07-03-Python全棧開發day24-面向對象設計

2018-07-03-Python全棧開發day24-面向對象設計

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         }
 9
return 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-面向對象設計