亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python基礎之函數、方法

系統 1876 0

函數是組織好的,可重復使用的,用來實現單一,或相關聯功能的代碼段。

定義一個函數:

            
              def 函數名(參數列表):
    函數體

            
          

#定義一個沒有參數,沒有函數體實現的函數;pass相當于占位符,使定義函數滿足語法要求,或者是先定義一個函數名,后面再實現其功能

            
              def func():
    pass

            
          

#定義一個add函數,參數為a,b,返回a+b的結果:

            
              def add(a,b):
    return a+b

print(add(1,2))
3

            
          

return函數最終返回的內容,如果沒有寫return,則默認返回None,相當于return None
函數不一定要顯式返回,具體要看函數的功能

函數分為內置的函數和自定義的函數兩種

函數的作用:
1.封裝,別人無須知道實現的細節
2.修改的時候,一處修改,全局生效
3.使用的時候方便,調用函數就可以了

什么時候會用到函數?
策略:
當你寫了大段大段的相同或者類似地代碼段后,就需要嘗試去封裝為函數。

如何寫一個函數:
1.傳參的類型判斷,不符合計算規則的參數需要忽略或者其他處理。
2.思考需要聲明哪些變量來存儲計算結果和中間的計算過程值。
3.開始寫的時候,最好加上中間狀態的打印語句。一般用的邏輯是遍歷+if判斷+return短路等。
4.計算完畢,想清楚返回1個還是多個數據的結果。

函數的參數

可變長參數(參數數量不固定)
*arg:表示把可變的多個非命名參數,轉換為了一個元組
**kw:表示把可變的多個命名參數,轉換為了一個字典
例:

            
              def add(a,*arg):
    result = a
    for num in arg:
        result += num
    return result

print(add(1,2,3,4))
10

            
          

在這里插入圖片描述

            
              def print_sth(a,**kw):
    print(a)
    for k,v in kw.items():
        print(k,v)

print_sth(1,b=2,c=3)

            
          

在這里插入圖片描述

*arg和**kw可以混合使用

            
              def func(a,b,*arg,**kw):
    result = a * b
    for i in arg:
        result *= i
    for j in kw.values():
        result *= j
    return result

print(func(1,2,3,4,f=5))  #等價于1*2*3*4*5

            
          

在這里插入圖片描述

函數傳入的參數為不可變的,對外部的變量就沒影響。
按值傳–傳入的不是變量對應的內存地址。
函數傳入的參數為可變的,對外部的變量就有影響。
按引用傳–傳入的是變量對應的內存地址。

注:
不可變對象:所有的數字、字符串、元組
可變:set dict list 實例
參數傳不可變對象的時候,函數內外變量值是獨立的
參數傳可變對象的時候,函數內外變量值是關聯的

原則1:
如果你傳入的參數是個變量a,這個變量是可變類型(list、dict、set)
那么函數內部對于這個參數的所有操作結果都會影響外部的參數值

原則2:
如果你傳入的參數是個變量a,這個變量是不可變類型(字符串、整數、小數)
那么函數內部對于這個參數的所有操作結果不會影響外部的參數值

函數和方法

函數:不寫在類里面
方法:寫在類里面的
實例或類里的叫方法
不在實例或類里的叫函數

幾種方法的區別
類方法、實例方法、靜態方法
類方法可以被類對象或實例調用,實例方法只能被實例調用,它只屬于類的單個實例擁有,靜態方法兩者都能調用,它在類和實例間共享。Python實現了一定的靈活性使得類方法和靜態方法,都能夠被實例和類二者調用。
所以三者主要區別在于參數傳遞上的區別,實例方法隱含傳的參數是類實例self,而類方法隱含傳遞的參數是類本身cls,而靜態方法無隱含參數,主要為了類實例也可以直接調用靜態方法(方法的參數將在類/面向對象部分講到,此處不做擴展)

Python類中隱藏數據
類中的方法名前后都有兩個下劃線,表示是Python的內置方法,如__init__()
類中的方法名前面有兩個下劃線,表示是Python中的私有方法,類似于java中的private,不能在類外部調用(如__setId()).
類中的屬性前有兩個下劃線表示聲明該屬性為私有屬性,不能在類的外部被使用或直接訪問,如__name


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99热久久这里只有精品2010 | free性欧美video69| 四虎在线视频 | 99精品视频在线在线视频观看 | 丁香婷婷网 | 国产精品久久久久aaaa | 美女被爆羞羞网站 | 尤物福利在线 | 久久777国产线看观看精品卜 | 夜夜橹| 久草在线国产 | 亚洲精品国产男人的天堂 | 精品亚洲永久免费精品 | 看免费的毛片 | 四虎影院免费在线 | 亚洲欧美国产精品久久久 | a级毛片在线观看 | 波多野结衣中文字幕一区 | xx毛片 | 三级a做爰大乳在线观看 | 真人一级一级特黄高清毛片 | 中文字幕一区二区三区免费视频 | 九九热精彩视频 | 性欧美video另类bd | 久草最新在线 | 国产欧美日韩亚洲 | 99久久精品免费 | 久久久久久综合对白国产 | 日本美女视频韩国视频网站免费 | 亚洲视频手机在线观看 | 毛片在线播 | 久久精品国产久精国产 | 色综合久久久久久久久五月性色 | 五月婷六月婷婷 | 一级毛片大全免费播放 | 五月婷婷中文 | 中文字幕欧美日韩va免费视频 | 欧美亚洲国产激情一区二区 | 精品 日韩 国产 欧美在线观看 | 未成人做爰视频www 我爱52avαv永久网站 | 天天操天天干天天舔 |