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

python函數(shù)缺省值與引用學(xué)習(xí)筆記分享

 更新時間:2013年02月10日 18:30:52   作者:  
有關(guān)一個在函數(shù)參數(shù)設(shè)置缺省值與引用的問題,這個問題是大多數(shù)Pythoner可能會忽視的問題,作個筆記,以備后閱,同時供需要的朋友參考

復(fù)制代碼 代碼如下:

import random, string
class C(object):    pass
def dangerFunction(msg, l = [], b = {}, c = C()):
    print msg, '-'*10
    print l, b, c.__dict__
    l.append(1)
    b[random.choice(string.ascii_lowercase)] = ''
    c.__dict__[random.choice(string.ascii_lowercase)] = ""
    print l, b, c.__dict__
dangerFunction('1')
dangerFunction('2')
dangerFunction('3')
print '-'*20
def safeFunction(msg, l = None, b = None, c = None):
    if not l:   l = []
    if not b:   b = {}
    if not c:   c = C()
    print msg, '-'*10
    print l, b, c.__dict__
    l.append(1)
    b[random.choice(string.ascii_lowercase)] = ''
    c.__dict__[random.choice(string.ascii_lowercase)] = ""
    print l, b, c.__dict__
safeFunction('1')
safeFunction('2')
safeFunction('3')

運(yùn)行結(jié)果:
復(fù)制代碼 代碼如下:

1 ----------
[] {} {}
[1] {'q': ''} {'p': ''}
2 ----------
[1] {'q': ''} {'p': ''}
[1, 1] {'q': '', 'a': ''} {'p': '', 'g': ''}
3 ----------
[1, 1] {'q': '', 'a': ''} {'p': '', 'g': ''}
[1, 1, 1] {'q': '', 'a': '', 'w': ''} {'p': '', 'w': '', 'g': ''}
--------------------
1 ----------
[] {} {}
[1] {'k': ''} {'l': ''}
2 ----------
[] {} {}
[1] {'r': ''} {'c': ''}
3 ----------
[] {} {}
[1] {'q': ''} {'h': ''}

由dangerFunction打印出來的結(jié)果來看,缺省值為 [], (), class
再下次調(diào)用時,如果繼續(xù)參數(shù)空缺而使用缺省值,那么缺省值延續(xù)上次引用。

可能打印無任何標(biāo)志無法看清楚,加上文字應(yīng)該會簡單很多。

復(fù)制代碼 代碼如下:

# -*- coding: utf-8 -*-
import random, string
class C(object):    pass
def dangerFunction(msg, l = [], b = {}, c = C()):
    print msg, '-'*10
    print u'操作前', l, b, c.__dict__
    l.append(1)
    b[random.choice(string.ascii_lowercase)] = ''
    c.__dict__[random.choice(string.ascii_lowercase)] = ""
    print u'操作后', l, b, c.__dict__
dangerFunction('1')
dangerFunction('2')
dangerFunction('3')
print '-' * 10, u'我是分隔符', '-' * 10
def safeFunction(msg, l = None, b = None, c = None):
    if not l:   l = []
    if not b:   b = {}
    if not c:   c = C()
    print msg, '-'*10
    print u'操作前', l, b, c.__dict__
    l.append(1)
    b[random.choice(string.ascii_lowercase)] = ''
    c.__dict__[random.choice(string.ascii_lowercase)] = ""
    print u'操作后',l, b, c.__dict__
safeFunction('1')
safeFunction('2')
safeFunction('3')

復(fù)制代碼 代碼如下:

1 ----------
操作前 [] {} {}
操作后 [1] {'m': ''} {'v': ''}
2 ----------
操作前 [1] {'m': ''} {'v': ''}
操作后 [1, 1] {'i': '', 'm': ''} {'g': '', 'v': ''}
3 ----------
操作前 [1, 1] {'i': '', 'm': ''} {'g': '', 'v': ''}
操作后 [1, 1, 1] {'i': '', 's': '', 'm': ''} {'s': '', 'g': '', 'v': ''}
---------- 我是分隔符 ----------
1 ----------
操作前 [] {} {}
操作后 [1] {'e': ''} {'q': ''}
2 ----------
操作前 [] {} {}
操作后 [1] {'d': ''} {'s': ''}
3 ----------
操作前 [] {} {}
操作后 [1] {'m': ''} {'k': ''}

相關(guān)文章

  • Python3實(shí)現(xiàn)zip分卷壓縮過程解析

    Python3實(shí)現(xiàn)zip分卷壓縮過程解析

    這篇文章主要介紹了Python3實(shí)現(xiàn)zip分卷壓縮過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • Python+tkinter實(shí)現(xiàn)高清圖片保存

    Python+tkinter實(shí)現(xiàn)高清圖片保存

    作為愛玩電腦的你是不是也需要經(jīng)常更換一下自己的電腦壁紙呢?但是在網(wǎng)上有很多心儀的圖片想要保存下來,如果一張張的去保存那效率又低。所以本文用Python寫一個保存圖片的功能,把我們的圖片給保存到我們的電腦,需要的可以參考一下
    2022-03-03
  • python利用TextBlob庫實(shí)現(xiàn)輕松分析文本情感

    python利用TextBlob庫實(shí)現(xiàn)輕松分析文本情感

    TextBlob是一個基于NLTK(Natural Language Toolkit)和Pattern庫的Python庫,它提供了一系列方便的接口和方法來處理文本數(shù)據(jù),下面我們就來學(xué)習(xí)一下如何利用TextBlob庫實(shí)現(xiàn)輕松分析文本情感吧
    2023-12-12
  • Selenium元素定位的30種方式(史上最全)

    Selenium元素定位的30種方式(史上最全)

    這篇文章主要介紹了Selenium元素定位的30種方式,中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Jupyter中直接顯示Matplotlib的圖形方法

    Jupyter中直接顯示Matplotlib的圖形方法

    今天小編就為大家分享一篇Jupyter中直接顯示Matplotlib的圖形方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python趣味挑戰(zhàn)之教你用pygame畫進(jìn)度條

    Python趣味挑戰(zhàn)之教你用pygame畫進(jìn)度條

    pygame四種方法教會你畫進(jìn)度條,其實(shí)也不難,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • python PyQt5中單行文本輸入控件QLineEdit用法詳解

    python PyQt5中單行文本輸入控件QLineEdit用法詳解

    在PyQt5的GUI編程中,QLineEdit控件是一個用于輸入和編輯單行文本的部件,它提供了豐富的功能和靈活性,可以輕松地實(shí)現(xiàn)用戶輸入的捕獲、驗(yàn)證和格式化等功能,本文將通過實(shí)際案例詳細(xì)介紹QLineEdit控件的常用方法,需要的朋友可以參考下
    2024-08-08
  • 在Python中調(diào)用ggplot的三種方法

    在Python中調(diào)用ggplot的三種方法

    這篇文章主要介紹了在Python中調(diào)用ggplot的三種方法,ggplot作為一個圖形庫,經(jīng)常被用來制作數(shù)據(jù)的可視化視圖,需要的朋友可以參考下
    2015-04-04
  • Python?OpenCV超詳細(xì)講解透視變換的實(shí)現(xiàn)

    Python?OpenCV超詳細(xì)講解透視變換的實(shí)現(xiàn)

    OpenCV用C++語言編寫,它具有C?++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac?OS,OpenCV主要傾向于實(shí)時視覺應(yīng)用,并在可用時利用MMX和SSE指令,本篇文章帶你通過OpenCV實(shí)現(xiàn)透視變換
    2022-04-04
  • Python?VisPy庫高性能科學(xué)可視化圖形處理用法實(shí)例探究

    Python?VisPy庫高性能科學(xué)可視化圖形處理用法實(shí)例探究

    VisPy是一個用于高性能科學(xué)可視化的Python庫,它建立在現(xiàn)代圖形處理單元(GPU)上,旨在提供流暢、交互式的數(shù)據(jù)可視化體驗(yàn),本文將深入探討VisPy的基本概念、核心特性以及實(shí)際應(yīng)用場景,并通過豐富的示例代碼演示其強(qiáng)大的可視化能力
    2023-12-12

最新評論

肃北| 陆河县| 开封市| 陈巴尔虎旗| 宜春市| 齐齐哈尔市| 新化县| 德格县| 尉犁县| 塔城市| 浦北县| 昔阳县| 遂溪县| 遂溪县| 平山县| 平邑县| 台北县| 武功县| 南皮县| 邢台市| 兴业县| 西充县| 遵义县| 确山县| 鹤峰县| 白河县| 额敏县| 铅山县| 西充县| 闵行区| 同仁县| 花莲市| 泾阳县| 盘山县| 陆良县| 武邑县| 玉溪市| 茌平县| 鹰潭市| 贵德县| 凤城市|