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

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')

運行結(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)文章

  • Python使用百度API上傳文件到百度網(wǎng)盤代碼分享

    Python使用百度API上傳文件到百度網(wǎng)盤代碼分享

    這篇文章主要介紹了Python使用百度API上傳文件到百度網(wǎng)盤代碼分享,本文使用了一個第三方庫poster,在文中給出了鏈接,需要的朋友可以參考下
    2014-11-11
  • pytorch中部分矩陣乘法和數(shù)組乘法的小結(jié)

    pytorch中部分矩陣乘法和數(shù)組乘法的小結(jié)

    本文主要介紹了pytorch中部分矩陣乘法和數(shù)組乘法的小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python grequests模塊使用場景及代碼實例

    Python grequests模塊使用場景及代碼實例

    這篇文章主要介紹了Python grequests模塊使用場景及代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • Django靜態(tài)文件加載失敗解決方案

    Django靜態(tài)文件加載失敗解決方案

    這篇文章主要介紹了Django靜態(tài)文件加載失敗解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • Python用函數(shù)思想完成哥德巴赫猜想代碼分析

    Python用函數(shù)思想完成哥德巴赫猜想代碼分析

    在本篇文章里小編給大家整理的是一篇關(guān)于Python用函數(shù)思想完成哥德巴赫猜想代碼分析,有興趣的朋友們可以參考下。
    2021-06-06
  • Python第三方庫的幾種安裝方式(小結(jié))

    Python第三方庫的幾種安裝方式(小結(jié))

    這篇文章主要介紹了Python第三方庫的幾種安裝方式(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Flask帶參URL傳值的實現(xiàn)方法

    Flask帶參URL傳值的實現(xiàn)方法

    這篇文章主要介紹了Flask帶參URL傳值的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python使用正則搜索字符串或文件中的浮點數(shù)代碼實例

    python使用正則搜索字符串或文件中的浮點數(shù)代碼實例

    這篇文章主要介紹了python使用正則搜索字符串或文件中的浮點數(shù)代碼實例,同時包含一個讀寫到文件功能,需要的朋友可以參考下
    2014-07-07
  • 對python字典元素的添加與修改方法詳解

    對python字典元素的添加與修改方法詳解

    今天小編就為大家分享一篇對python字典元素的添加與修改方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 解決Django一個表單對應(yīng)多個按鈕的問題

    解決Django一個表單對應(yīng)多個按鈕的問題

    今天小編就為大家分享一篇解決Django一個表單對應(yīng)多個按鈕的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07

最新評論