源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

python函数缺省值与引用学习笔记分享

  • 时间:2020-11-28 03:41 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python函数缺省值与引用学习笔记分享
[u]复制代码[/u] 代码如下:
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')
运行结果:
[u]复制代码[/u] 代码如下:
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打印出来的结果来看,缺省值为 [], (), class 再下次调用时,如果继续参数空缺而使用缺省值,那么缺省值延续上次引用。 可能打印无任何标志无法看清楚,加上文字应该会简单很多。
[u]复制代码[/u] 代码如下:
# -*- 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')
[u]复制代码[/u] 代码如下:
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': ''}
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部