python函數(shù)缺省值與引用學習筆記分享
來源:易賢網(wǎng) 閱讀:1936 次 日期:2014-05-19 21:26:43
溫馨提示:易賢網(wǎng)小編為您整理了“python函數(shù)缺省值與引用學習筆記分享”,方便廣大網(wǎng)友查閱!

有關(guān)一個在函數(shù)參數(shù)設(shè)置缺省值與引用的問題,這個問題是大多數(shù)Pythoner可能會忽視的問題,作個筆記,以備后閱,同時供需要的朋友參考

代碼如下:

importrandom,string

classC(object):pass

defdangerFunction(msg,l=[],b={},c=C()):

printmsg,'-'*10

printl,b,c.__dict__

l.append(1)

b[random.choice(string.ascii_lowercase)]=''

c.__dict__[random.choice(string.ascii_lowercase)]=""

printl,b,c.__dict__

dangerFunction('1')

dangerFunction('2')

dangerFunction('3')

print'-'*20

defsafeFunction(msg,l=None,b=None,c=None):

ifnotl:l=[]

ifnotb:b={}

ifnotc:c=C()

printmsg,'-'*10

printl,b,c.__dict__

l.append(1)

b[random.choice(string.ascii_lowercase)]=''

c.__dict__[random.choice(string.ascii_lowercase)]=""

printl,b,c.__dict__

safeFunction('1')

safeFunction('2')

safeFunction('3')運行結(jié)果:

代碼如下:

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ù)上次引用。可能打印無任何標志無法看清楚,加上文字應(yīng)該會簡單很多。

代碼如下:

#-*-coding:utf-8-*-

importrandom,string

classC(object):pass

defdangerFunction(msg,l=[],b={},c=C()):

printmsg,'-'*10

printu'操作前',l,b,c.__dict__

l.append(1)

b[random.choice(string.ascii_lowercase)]=''

c.__dict__[random.choice(string.ascii_lowercase)]=""

printu'操作后',l,b,c.__dict__

dangerFunction('1')

dangerFunction('2')

dangerFunction('3')

print'-'*10,u'我是分隔符','-'*10

defsafeFunction(msg,l=None,b=None,c=None):

ifnotl:l=[]

ifnotb:b={}

ifnotc:c=C()

printmsg,'-'*10

printu'操作前',l,b,c.__dict__

l.append(1)

b[random.choice(string.ascii_lowercase)]=''

c.__dict__[random.choice(string.ascii_lowercase)]=""

printu'操作后',l,b,c.__dict__

safeFunction('1')

safeFunction('2')

safeFunction('3')代碼如下:

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':''}

更多信息請查看IT技術(shù)專欄

更多信息請查看腳本欄目
易賢網(wǎng)手機網(wǎng)站地址:python函數(shù)缺省值與引用學習筆記分享

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)