iOS開發人員如何學習Python程式設計15-面向物件程式設計1
這是我參與11月更文挑戰的15天,活動詳情檢視:2021最後一次更文挑戰。
面向物件程式設計(Object Oriented Programming
),簡稱OOP
,是一種程式設計思想。
面向過程與面向物件有什麼區別? - 面向過程:根據業務邏輯從上到下寫程式碼; - 面向物件:將資料與函式繫結到一起,進行封裝。減少重複程式碼的重寫過程。
類與物件介紹
類
是抽象的概念,僅僅是模板
。用來描述具有相同屬性和方法的物件的集合。比如:
- 公司就可以表示成一個類。
某一個具體事物的存在,在現實世界中可以是看得見摸得著的。 比如:
- 阿里
代表了公司的中具體的一員。這就是物件。
類與物件的關係
在開發中,我們可以進行物件歸類。
比如,分析班級同學公有特徵歸類:
```
option = {
title: {
text: '張三',
subtext: '三年二班'
},
tooltip: {
trigger: 'item',
formatter: "{a}
{b} : {c}%"
},
toolbox: {
feature: {
dataView: {readOnly: false},
restore: {},
saveAsImage: {}
}
},
series: [
{
name:'漏斗圖',
type:'funnel',
left: '10%',
top: 60,
//x2: 80,
bottom: 60,
width: '80%',
// height: {totalHeight} - y - y2,
min: 0,
max: 100,
minSize: '0%',
maxSize: '100%',
sort: 'descending',
gap: 2,
label: {
show: true,
position: 'inside'
},
labelLine: {
length: 10,
lineStyle: {
width: 1,
type: 'solid'
}
},
itemStyle: {
borderColor: '#fff',
borderWidth: 1
},
emphasis: {
label: {
fontSize: 20
}
},
data: [
{value: 60, name: '愛好'},
{value: 40, name: '年級'},
{value: 20, name: '年齡'},
{value: 80, name: '性別'},
{value: 100, name: '姓名'}
]
}
]
}; ```
那麼,我們就可以將三年二班學生公有的特徵進行歸類。而建立一個學生類:
option = {
title: {
text: '三年二班'
},
tooltip: {},
series: [
{
type: 'graph',
layout: 'none',
symbolSize: 70,
label: {
show: true
},
edgeSymbol: ['circle', 'arrow'],
edgeSymbolSize: [4, 10],
edgeLabel: {
fontSize: 10
},
data: [{
name: '三年二班學生類',
x: 300,
y: 300
}, {
name: '張四',
x: 800,
y: 300
}, {
name: '李三',
x: 500,
y: 100
}, {
name: '王二麻子',
x: 550,
y: 500
}],
// links: [],
links: [{
source: 0,
target: 1
}, {
source: 0,
target: 2
}, {
source: 0,
target: 3
}],
lineStyle: {
opacity: 0.9,
width: 2,
curveness: 0.2
}
}
]
}
類的構成
類由3個部分構成:
- 類的名稱:類名
- 類的屬性:一組資料
- 類的方法:允許對類進行操作的方法
⚠️注意: 類名通常採用駝峰式命名方式,儘量讓字面意思體現出類的作用。
Python
使用class
關鍵字來定義類,其基本結構如下:
class 類名:
pass
Python
中,可以根據已經定義的類去創建出一個個物件:
物件名 = 類名()
定義一個完整的類:
```
定義
class 類名: def 方法名(self,引數): # 類中函式:稱為方法 pass
執行
s = 類名() # 建立物件(例項) 整個過程就是例項化 s.方法名(引數) # 呼叫類中方法 ```
物件初始化
在類當中定義方法時,會發現系統幫我們自動建立了self
引數,並且在呼叫物件的該方法時,也無需傳入self
引數。那這個self
是什麼?
實際上,我們需要明確self
的兩個概念:
self
本身是形參;self
就是物件本身。__init__()
稱為初始化方法,也可稱為構造方法。在建立物件時,會自動執行該方法,為物件的屬性設定初始值:
```
class Student(object):
def init(self,name,age):
self.name = name
self.age = age
def info(self):
print(self.name,self.age)
ls = Student("李四",18)
ls.info()
```
__str__()
列印輸出物件變數時,同時列印自定義的內容,將自定義內容通過return關鍵字返回:
``` class Students: def init(self): self.name = "李四" self.age = 18
def __str__(self):
return self.name
ls = Students() print(ls) # 李四 ``` ⚠️注意: 返回值必須是字串。