面向對象編程(Object Oriented Programming,OOP,面向對象程序設計)

一.概述

  面向過程:根據業務邏輯從上到下寫代碼python

  函數式:將具備一些功能的代碼封裝到函數中,須要的時候調用便可編程

  面向對象:對函數進行分類和封裝,讓開發更方便,更快捷ide

Java和C#只支持面型對象編程,,而python比較靈活,即支持面向對象編程,又支持函數式編程函數式編程

二.建立類和對象

  類就是一個模板,模板裏能夠包含多個函數函數裏實現一些功能函數

  對象是根據模板建立的實例,經過實例對象能夠執行類中的函數spa

  在類中定義的函數叫方法3d

三.面向對象的三大特色

封裝,繼承,多肽code

1.封裝

      封裝就是將內容封裝到某個地方,之後再去調用對象

使用面向對象封裝特性時須要:blog

  將內容封裝到某處

  從某處調用被封裝的內容

第一步:將內容封裝到某處

1 class Foo: 2     def __init__(self,name,age): 3         self.name=name 4         self.age=age 5 
6 obj1=Foo('sushan','18')  #此時self等於obj1
7 obj2=Foo('Lisa','20')   #此時self等於obj2

第二步:從某處調用被封裝的內容

1 class Foo: 2     def __init__(self,name,age): 3         self.name=name 4         self.age=age 5 obj1=Foo('lisa',45) 6 print(obj1.name)  #直接調用obj1的name屬性
7 print(obj1.age)    #直接調用obj1的age屬性
經過對象直接調用
 1 class Foo:  2     def __init__(self,name,age):  3         self.name=name  4         self.age=age  5         
 6     def detail(self):  7         print(self.name)  8         print(self.age)  9 
10 obj1=Foo('lisa',45) 11 obj1.detail()
經過self間接調用

  綜上所述:對於面向對象的封裝,其實就是使用構造方法將內容封裝到對象中而後經過直接或者間接的方法獲取被封裝的內容

 2.繼承

面向對象中的繼承和現實中的繼承相同,即:子能夠繼承父的內容

語法:

對於面向對象來講,其實就是多個類共有的方法提取到父類中,子類繼承父類而沒必要一一繼承每個方法

注:此處的稱爲除了子類和父類還有還有派生類和基類的叫法

子類也能夠繼承多個類:

 1 class Foo1:  2     def f1(self):  3         print('f1')  4     def f2(self):  5         print('f2')  6 
 7 class Foo3:  8     def f1(self):  9         print('f1') 10     def f2(self): 11         print('f2') 12 
13 class Foo2(Foo1,Foo3):  #此時優先繼承Foo1
14     def f3(self): 15         print('f3')

優先繼承左面的

3.多肽(多種形態或多種狀態)

python不支持Java和C#這一類強類型語言中多肽的寫法,可是原生多肽

1 def func(arg):  #多種形態多種類型 此處能夠用元組,列表,字符串
2     arg[0]      #只要知足這一點
相關文章
相關標籤/搜索