最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python基礎(chǔ)學(xué)習(xí)之函數(shù)方法實(shí)例詳解

 更新時(shí)間:2019年06月18日 09:38:40   作者:George-Henry  
這篇文章主要介紹了Python基礎(chǔ)學(xué)習(xí)之函數(shù)方法,結(jié)合實(shí)例形式分析了Python函數(shù)方法的定義、參數(shù)、復(fù)用和繼承相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python基礎(chǔ)學(xué)習(xí)之函數(shù)方法。分享給大家供大家參考,具體如下:

前言

與其他編程語言一樣,函數(shù)(或者方法)是組織好的,可重復(fù)使用的,用來實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。

python的函數(shù)具有非常高的靈活性,可以在單個(gè)函數(shù)里面封裝和定義另一個(gè)函數(shù),使編程邏輯更具模塊化。

一、Python的函數(shù)方法定義

函數(shù)方法定義的簡單規(guī)則:

1. 函數(shù)代碼塊以 def 關(guān)鍵詞開頭,后接函數(shù)標(biāo)識(shí)符名稱和圓括號(hào)()。
2. 任何傳入?yún)?shù)和自變量必須放在圓括號(hào)中間。圓括號(hào)之間可以用于定義參數(shù)。
3. 函數(shù)的第一行語句可以選擇性地使用文檔字符串—用于存放函數(shù)說明。
4. 函數(shù)內(nèi)容以冒號(hào)起始,并且縮進(jìn)。
5. return [表達(dá)式] 結(jié)束函數(shù),選擇性地返回一個(gè)值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回 None。

函數(shù)demo:

def test_method():
  test_string = "test"
  return test_string

方法和函數(shù)的區(qū)別就是,方法是屬于類里面的,可以獲取調(diào)用類的屬性和定義的成員,使用self訪問,方法的定義如下:

Class A:
  self.test_string = "test"
  def test_method(self):
    return self.test_string

注:如果方法沒有使用類成員,則不需要帶self,即方法和函數(shù)一致,此時(shí)也成為靜態(tài)方法@staticmethod

二、函數(shù)和方法的參數(shù)類型:

1. 必備參數(shù): 必備參數(shù)須以正確的順序傳入函數(shù)。調(diào)用時(shí)的數(shù)量必須和聲明時(shí)的一樣,必備參數(shù)定義在函數(shù)定義的括號(hào)()內(nèi)。

2. 默認(rèn)參數(shù): 默認(rèn)參數(shù)在調(diào)用方法或函數(shù),不傳入該參數(shù)時(shí),會(huì)使用默認(rèn)的值,默認(rèn)值寫在(內(nèi)),必須在必備參數(shù)之后,如 def test_method(str, default_str = "hello")

3. 不定長參數(shù): python函數(shù)除了可以定義默認(rèn)參數(shù)之外,還可以定義可變參數(shù),如*args和**kwargs:

(1) 函數(shù)內(nèi)部可變參數(shù)的名字前面有個(gè) * 號(hào),我們可以傳入0個(gè)、1個(gè)或多個(gè)參數(shù)給可變參數(shù),在函數(shù)內(nèi)部,直接把變量 args 看成一個(gè) tuple 就好了;
(2) 雙星號(hào)(**):**kwargs將參數(shù)以字典的形式導(dǎo)入,如bar(1,a=2,b=3),在內(nèi)部kwargs參數(shù)就是{'a': 2, 'b': 3};
(3) 對(duì)于函數(shù)外部帶單星號(hào)*,外部傳入的參數(shù)帶*號(hào),則在內(nèi)部則是以解壓方式賦給函數(shù)的每個(gè)參數(shù);

4. 匿名函數(shù): python使用lambda來創(chuàng)建匿名函數(shù):

(1)lambda只是一個(gè)表達(dá)式,函數(shù)體比def簡單很多;
(2)lambda的主體是一個(gè)表達(dá)式,而不是一個(gè)代碼塊。僅僅能在lambda表達(dá)式中封裝有限的邏輯進(jìn)去;
(3)lambda函數(shù)擁有自己的命名空間,且不能訪問自有參數(shù)列表之外或全局命名空間里的參數(shù);

lambda的demo:

sum = lambda arg1, arg2: arg1 + arg2;

調(diào)用:

sum(1,2)
# 返回3

三、方法的復(fù)用和繼承:

1. 方法的繼承:

(1) 如果一個(gè)類繼承了基類,則需要在這個(gè)類的構(gòu)造函數(shù)(__init__())里面調(diào)用基類的初始化方法,即添加:super().__init__()來初始化基類;
(2) 這個(gè)類可以調(diào)用基類中存在而本類不存在的方法,這就是子類調(diào)用父類的方法,可以直接使用self調(diào)用;

2. python函數(shù)沒有重載功能:

函數(shù)重載主要是為了解決兩個(gè)問題:

①.可變參數(shù)類型;

②.可變參數(shù)個(gè)數(shù)。

另外,一個(gè)基本的設(shè)計(jì)原則是,僅僅當(dāng)兩個(gè)函數(shù)除了參數(shù)類型和參數(shù)個(gè)數(shù)不同以外,其功能是完全相同的。

對(duì)于情況1,函數(shù)功能相同,但是參數(shù)類型不同,python 如何處理?答案是根本不需要處理,因?yàn)?python 可以接受任何類型的參數(shù),如果函數(shù)的功能相同,那么不同的參數(shù)類型在python中很可能是相同的代碼,沒有必要做成兩個(gè)不同函數(shù);

對(duì)于情況2,函數(shù)功能相同,但參數(shù)個(gè)數(shù)不同,python 如何處理?大家知道,答案就是缺省參數(shù)。對(duì)那些缺少的參數(shù)設(shè)定為缺省參數(shù)即可解決問題。因?yàn)槟慵僭O(shè)函數(shù)功能相同,那么那些缺少的參數(shù)終歸是需要用的;
鑒于情況1跟情況2都有了解決方案,python自然就不需要函數(shù)重載了

3. 方法覆蓋: 一個(gè)類用self調(diào)用基類中存在而本類也存在的方法,這時(shí)子類方法會(huì)優(yōu)先被調(diào)用,替代調(diào)用父類的方法,如果要調(diào)用父類的該方法,需要用super()參數(shù);

四、Python函數(shù)與方法的其他知識(shí):

Python常用內(nèi)置函數(shù):

(1) dir() 函數(shù)不帶參數(shù)時(shí),返回當(dāng)前范圍內(nèi)的變量、方法和定義的類型列表;帶參數(shù)時(shí),返回參數(shù)的屬性、方法列表。如果參數(shù)包含方法__dir__(),該方法將被調(diào)用;

(2) type()函數(shù),type()只帶一個(gè)變量參數(shù)則返回變量的類型,但是該函數(shù)如果帶三個(gè)參數(shù)則可以返回新創(chuàng)建的類對(duì)象(動(dòng)態(tài)創(chuàng)建類對(duì)象):

# 使用type()函數(shù)定義類
# 實(shí)例方法
def __init__(self, name):
  # 實(shí)例屬性
  self.name = name
# 類方法
@classmethod
def study(cls):
  pass
# 靜態(tài)方法
@staticmethod
def cal_student_num():
  pass
# 元類最大的作用不在于創(chuàng)建一個(gè)新的類
A = type(
  'A',
  (object,),
  {
    'role': 'student',
    '__init__': __init__,
    'study': study,
    'cal_student_num': cal_student_num
  })

(3) Python函數(shù)中,可以通過聲明全局變量(global 變量名)來調(diào)用函數(shù)外部的變量,也可以通過將外部變量傳參的形式傳入函數(shù)內(nèi)使用,global的方式會(huì)改變外部變量的值;

關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python函數(shù)使用技巧總結(jié)》、《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 推薦系統(tǒng)MostPopular算法的Python實(shí)現(xiàn)方式

    推薦系統(tǒng)MostPopular算法的Python實(shí)現(xiàn)方式

    這篇文章主要介紹了推薦系統(tǒng)MostPopular算法的Python實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 速記Python布爾值

    速記Python布爾值

    這篇文章主要介紹了速記Python布爾值,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Python網(wǎng)絡(luò)編程基于多線程實(shí)現(xiàn)多用戶全雙工聊天功能示例

    Python網(wǎng)絡(luò)編程基于多線程實(shí)現(xiàn)多用戶全雙工聊天功能示例

    這篇文章主要介紹了Python網(wǎng)絡(luò)編程基于多線程實(shí)現(xiàn)多用戶全雙工聊天功能,結(jié)合實(shí)例形式分析了Python網(wǎng)絡(luò)編程中使用多線程進(jìn)行多用戶異步通信的原理與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-04-04
  • 解析python 類方法、對(duì)象方法、靜態(tài)方法

    解析python 類方法、對(duì)象方法、靜態(tài)方法

    這篇文章主要介紹了解析python 類方法、對(duì)象方法、靜態(tài)方法的的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • Python實(shí)現(xiàn)決策樹并且使用Graphviz可視化的例子

    Python實(shí)現(xiàn)決策樹并且使用Graphviz可視化的例子

    今天小編就為大家分享一篇Python實(shí)現(xiàn)決策樹并且使用Graphviz可視化的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 手把手教你實(shí)現(xiàn)Python連接數(shù)據(jù)庫并快速取數(shù)的工具

    手把手教你實(shí)現(xiàn)Python連接數(shù)據(jù)庫并快速取數(shù)的工具

    在數(shù)據(jù)生產(chǎn)應(yīng)用部門,取數(shù)分析是一個(gè)很常見的需求,實(shí)際上業(yè)務(wù)人員需求時(shí)刻變化,最高效的方式是讓業(yè)務(wù)部門自己來取。本文就來手把手教大家搭建一個(gè)?Python?連接數(shù)據(jù)庫,快速取數(shù)工具,需要的可以參考一下
    2022-11-11
  • 使用qt quick-ListView仿微信好友列表和聊天列表的示例代碼

    使用qt quick-ListView仿微信好友列表和聊天列表的示例代碼

    本文以微信好友列表為例給大家學(xué)習(xí)listview的相關(guān)知識(shí),通過實(shí)例demo給大家詳解qt quick-ListView仿微信好友列表和聊天列表的實(shí)現(xiàn)方法,需要的朋友參考下吧
    2021-06-06
  • Python?中?yeild?的用法詳解

    Python?中?yeild?的用法詳解

    yield?是?Python?中的關(guān)鍵字,用于生成器函數(shù)中,可以將函數(shù)變成一個(gè)迭代器,實(shí)現(xiàn)惰性計(jì)算,節(jié)省內(nèi)存空間。本文將介紹?yield?的基本用法和實(shí)現(xiàn)原理,以及與?yield?相關(guān)的注意事項(xiàng)和常見問題。
    2023-06-06
  • python 實(shí)現(xiàn)分頁顯示從es中獲取的數(shù)據(jù)方法

    python 實(shí)現(xiàn)分頁顯示從es中獲取的數(shù)據(jù)方法

    今天小編就為大家分享一篇python 實(shí)現(xiàn)分頁顯示從es中獲取的數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python中提取人臉特征的三種方法詳解

    Python中提取人臉特征的三種方法詳解

    這篇文章主要和大家分享三個(gè)Python中提取人臉特征的方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,需要的可以參考一下
    2022-05-05

最新評(píng)論

南郑县| 鄂州市| 共和县| 江山市| 保山市| 广州市| 怀柔区| 永善县| 洛隆县| 策勒县| 京山县| 乌审旗| 高雄县| 南城县| 体育| 高雄市| 茶陵县| 揭西县| 遂平县| 成武县| 肇源县| 赞皇县| 漯河市| 山东| 古交市| 社旗县| 仙游县| 元谋县| 福贡县| 永定县| 安乡县| 昭通市| 洛南县| 花垣县| 广东省| 县级市| 太仆寺旗| 汝南县| 蕉岭县| 怀集县| 宣武区|