欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用函數(shù)默認值實現(xiàn)函數(shù)靜態(tài)變量的方法

 更新時間:2014年08月18日 16:53:28   投稿:shichen2014  
這篇文章主要介紹了Python使用函數(shù)默認值實現(xiàn)函數(shù)靜態(tài)變量的方法,是很實用的功能,需要的朋友可以參考下

本文實例展示了Python使用函數(shù)默認值實現(xiàn)函數(shù)靜態(tài)變量的方法,具體方法如下:

一、Python函數(shù)默認值

Python函數(shù)默認值的使用可以在函數(shù)調(diào)用時寫代碼提供方便,很多時候我們只要使用默認值就可以了。 所以函數(shù)默認值在python中用到的很多,尤其是在類中間,類的初始化函數(shù)中一幫都會用到默認值。 使用類時能夠方便的創(chuàng)建類,而不需要傳遞一堆參數(shù)。

只要在函數(shù)參數(shù)名后面加上 ”=defalut_value”,函數(shù)默認值就定義好了。有一個地方需要注意的是,有默認值的參數(shù)必須在函數(shù)參數(shù)列表的最后,不允許將沒有默認值的參數(shù)放在有默認值的參數(shù)后,因為如果你那樣定義的話,解釋器將不知道如何去傳遞參數(shù)。

先來看一段示例代碼:

def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):
  while True:
    ok = raw_input(prompt)
    if ok in ('y', 'ye', 'yes'): return True
    if ok in ('n', 'no', 'nop', 'nope'): return False
    retries = retries - 1
    if retries < 0: raise IOError, 'refusenik user'
    print complaint

你調(diào)用上面的函數(shù)時,可以修改重試次數(shù)和輸出的提示語言,如果你比較懶得話,那么什么都不用改。

二、python使用函數(shù)默認值來實現(xiàn)函數(shù)靜態(tài)變量的功能

Python中是不支持靜態(tài)變量的,但是我們可以通過函數(shù)的默認值來實現(xiàn)靜態(tài)變量的功能。
當(dāng)函數(shù)的默認值是內(nèi)容是可變的類時,類的內(nèi)容可變,而類的名字沒變。(相當(dāng)于開辟的內(nèi)存區(qū)域沒有變,而其中內(nèi)容可以變化)。
這是因為python中函數(shù)的默認值只會被執(zhí)行一次,(和靜態(tài)變量一樣,靜態(tài)變量初始化也是被執(zhí)行一次。)這就是他們的共同點。

再來看下面的程序片段:

def f(a, L=[]):
  L.append(a)
  return L
 
print f(1)
print f(2)
print f(3)
print f(4,['x'])
print f(5)

其輸出結(jié)果是:

[1]
[1, 2]
[1, 2, 3]
['x', 4]
[1, 2, 3, 5]

前面的好理解,為什么最后 “print f(5)”的輸出是 “[1, 2, 3, 5]”呢?

這是因為 “print f(4,['x'])”時,默認變量并沒有被改變,因為默認變量的初始化只是被執(zhí)行了一次(第一次使用默認值調(diào)用),初始化執(zhí)行開辟的內(nèi)存區(qū)(我們可以稱之為默認變量)沒有被改變,所以最后的輸出結(jié)果是“[1, 2, 3, 5]”。

相信本文所述實例對大家Python程序設(shè)計有一定的幫助作用。

相關(guān)文章

  • pycharm安裝opencv-python報錯的解決

    pycharm安裝opencv-python報錯的解決

    本文主要介紹了pycharm安裝opencv-python報錯的解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Python中如何引入第三方模塊

    Python中如何引入第三方模塊

    在本篇文章中小編給大家分享的是一篇關(guān)于Python中如何引入第三方模塊的相關(guān)知識點,需要的朋友們可以學(xué)習(xí)下。
    2020-05-05
  • Python學(xué)習(xí)之字符串常用操作詳解

    Python學(xué)習(xí)之字符串常用操作詳解

    字符串是Pyhon中的常用的數(shù)據(jù)類型,這篇文章主要為大家詳細介紹一下python字符串的一些常用操作,文中示例代碼講解詳細,需要的朋友可以參考下
    2022-09-09
  • Python列表和元組的定義與使用操作示例

    Python列表和元組的定義與使用操作示例

    這篇文章主要介紹了Python列表和元組的定義與使用操作,結(jié)合實例形式分析了Python中列表和元組的功能、區(qū)別、定義及使用方法,需要的朋友可以參考下
    2017-07-07
  • Django項目基礎(chǔ)配置和基本使用過程解析

    Django項目基礎(chǔ)配置和基本使用過程解析

    這篇文章主要介紹了Django項目基礎(chǔ)配置和基本使用過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • python實現(xiàn)抖音點贊功能

    python實現(xiàn)抖音點贊功能

    這篇文章主要為大家詳細介紹了python實現(xiàn)抖音點贊功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Pandas讀取csv時如何設(shè)置列名

    Pandas讀取csv時如何設(shè)置列名

    這篇文章主要介紹了Pandas讀取csv時如何設(shè)置列名,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • 對Pytorch中Tensor的各種池化操作解析

    對Pytorch中Tensor的各種池化操作解析

    今天小編就為大家一篇對Pytorch中Tensor的各種池化操作解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python實現(xiàn)身份證號碼解析

    Python實現(xiàn)身份證號碼解析

    本文給大家匯總介紹下使用Python實現(xiàn)身份證號碼驗證解析的幾個方法,有需要的小伙伴可以參考下。
    2015-09-09
  • python獲取指定時間差的時間實例詳解

    python獲取指定時間差的時間實例詳解

    這篇文章主要介紹了python獲取指定時間差的時間實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04

最新評論