中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

小學課后服務 Python少兒編程 進階篇:8-面向對象編程 課件 (21張PPT)

資源下載
  1. 二一教育資源

小學課后服務 Python少兒編程 進階篇:8-面向對象編程 課件 (21張PPT)

資源簡介

(共21張PPT)
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
少兒編程課
面向對象編程
程序設計的發展過程
先來了解下程序設計(編程語言)的發展過程
非結構化程序設計
結構化程序設計
面向對象程序設計
類和對象的基本概念
想要理解面向對象,首先需要了解面向對象中最基本的兩個概念:類與對象
這是一個人嗎?
這是程序員嗎?
想要理解面向對象,首先需要了解面向對象中最基本的兩個概念:類與對象
這是一輛車嗎?
這是一只鳥嗎?
那么什么是類和對象呢?
類:你心中對某一些“東西”的定義和分類:比如人(類)、車、鳥(類)、程序員
對象:這些東西中的某個個體,比如喬布斯、樓下那輛車、窗體上那只鳥等,就稱為對象
思考一下:先有類還是先有對象呢?
先來看現實世界中,是先有類的概念還是先有對象的概念
也就是說,人不是從出生就知道總類的概念的,這是一個學習的過程
判斷
從具體的鳥,到腦海中有清晰的鳥的形象的過程,就稱為抽象
對象

抽象
抽象
抽象是從眾多的事物中抽取出共同的、本質性的特征,而舍棄其非本質的特征。例如蘋果、香蕉、生梨、葡萄、桃子等,它們共同的特性就是水果。得出水果概念的過程,就是一個抽象的過程。
于是我們可以得出結論:在現實世界中,先有對象,對象的共同特點被抽象成類的概念:
而對于計算機中的面向對象的編程語言(如python)來說,則剛好相反
需要先定義類,也即定義某一類東西的全部特征,然后使用這個類去創建一個個的個體(對象)
Python中的面向對象
接下來我們就來看看,Python中面向對象編程如何實現
1
首先定義一個類,Python中類的定義使用class關鍵字,后面跟類名
class Person():
2
接著,思考一下,類里面寫什么內容呢?
以人類為例,類既然起到模板的作用,那么就應該包含全人類的共同特征,具體來說包含兩點:
靜態特征:屬性
動態行為:函數/方法

類的名稱可以任意,采用駝峰命名法,也即每個單詞的首字母大寫,如Book、Person、WildAnimal等
下面我們把類中屬性的定義補充完整并定義一個對象出來:
1
在類中,加入__init__方法
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
這里的__init__方法是一個特殊的方法(init是單詞初始化initialization的省略形式)
在使用類創建對象之后被執行,用于給新創建的對象初始化屬性用。
下面我們把類中屬性的定義補充完整并定義一個對象出來:
2
初始化屬性的語句就是self.name = name這種了,這一句不太好理解,我們把它改編一下就好理解了:
def __init__(self, n, a):
self.name = n
self.age = a
首先這是一個方法,方法的形參有self,n和a三個。
這個self,表示對象本身,誰調用,就表示誰(這句話不好理解,先記住,我們后面分析)。
語法上,類中的方法的第一個參數都是self,這是和普通方法區別的地方。
這里self.name = n和self.age = a表示將外部傳來的n和a,賦值給了self對象的name和age屬性。
這里的n和a,其實叫什么都可以,但是會有個問題:一般我們調用方法的時候,想自動提示一下或者查看文檔看一下這個方法的參數要求,如果形參名都是n、a、m、i這些,會讓人摸不著頭腦,不知道到底該傳入什么樣的實參。因為這里我們傳入實參是為了給屬性賦值,為了能見名知意,將形參的名字定義的跟屬性一致,調用者就知道該怎么傳參了。
所以才有了上面的寫法。
下面我們把類中屬性的定義補充完整并定義一個對象出來:
3
接著就可以創造一個對象出來了:
這句話就創建出來了一個具體的人,并且給這個人起了個名字叫小明,指定了小明的年齡為20,并且將小明這個對象賦值給了變量p,此時p就表示小明這個人(對象)
p = Person('小明', 20)
既然我們是編程世界的神,當然想造什么樣的人都可以
1
比如造一個200歲的叫杰拉考的人:
p = Person(‘杰拉考', 200)
這句話后面的Person('杰拉考', 200)用于創建出了一個對象(人),并且調用了__init__(self,name,age)方法完成了該人的屬性的初始化,杰拉考賦值給了name,200賦值給了age屬性。
那self呢?self不需要傳參,上面我們說過,self,表示對象本身,誰調用,就表示誰,此時的self就表示你Person('杰拉考', 200)創造出來的那個對象,也即是p。
也即,我們創造出了p,然后給p的屬性賦了值,此時p就表示擁有屬性值之后的那個人。
2
可以使用點.來調用對象的屬性,比如輸出p的名字和年齡
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person('杰拉考', 200)
print(p.name)
print(p.age)
接著我們再來說說類中的動態行為,也即方法/函數
1
在Person類中定義一個方法,用于自我介紹
2
完整代碼如下:
def desc(self):
print("我叫%s,今年%d歲" %
(self.name, self.age))
在類的內部,訪問自己的屬性和方法,都需要通過self,self就是外部對象在類內部的表示,此時可以使用p調用該方法
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def desc(self):
print("我叫%s,今年%d歲" % (self.name, self.age))
p = Person('杰拉考', 200)
# 調用自我介紹方法 desc方法中的self就是外部的這個p
p.desc()
當前desc方法中的self,就是外部的那個對象p,如果我再定義了一個對象p2,那么p2調用desc時,desc中的self就表示p2這個對象。正所謂:誰調用,就表示誰
總結
Summary
面向對象中類和對象概念的理解

Python中類的定義和對象的創建

__init__()函數和self關鍵字的理解

Thanks!

展開更多......

收起↑

資源預覽

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 南投市| 梁山县| 太湖县| 夏邑县| 烟台市| 分宜县| 小金县| 桦南县| 象山县| 桂阳县| 礼泉县| 平昌县| 怀化市| 晋城| 万安县| 凤冈县| 翁源县| 秦皇岛市| 甘德县| 秦皇岛市| 永寿县| 伊金霍洛旗| 万宁市| 南汇区| 永川市| 乾安县| 绥滨县| 和平县| 彝良县| 安陆市| 兰溪市| 凌海市| 循化| 九寨沟县| 正宁县| 梅州市| 神木县| 诸城市| 广汉市| 元朗区| 宕昌县|