4.2. 使用可选参数和命名参数

Python 允许函数参数有缺省值;如果调用函数时不使用参数,参数将获得它的缺省值。此外,通过使用命名参数还可以以任意顺序指定参数。SQL Server Transact/SQL 中的存储过程也可以做到这些;如果你是脚本高手,你可以略过这部分。

info 函数就是这样一个例子,它有两个可选参数。


def info(object, spacing=10, collapse=1):

spacingcollapse 是可选参数,因为它们已经定义了缺省值。object 是必备参数,因为它没有指定缺省值。如果调用 info 时只指定一个参数,那么 spacing 缺省为 10collapse 缺省为 1。如果调用 info 时指定两个参数,collapse 依然默认为 1

假如你要指定 collapse 的值,但是又想要接受 spacing 的缺省值。在绝大部分语言中,你可能运气就不太好了,因为你需要使用三个参数来调用函数,这势必要重新指定 spacing 的值。但是在 Python 中,参数可以通过名称以任意顺序指定。

例 4.4. info 的有效调用

info(odbchelper)                    
info(odbchelper, 12)                
info(odbchelper, collapse=0)        
info(spacing=15, object=odbchelper) 
只使用一个参数,spacing 使用缺省值 10collapse 使用缺省值 1
使用两个参数,collapse 使用缺省值 1
这里你显式命名了 collapse 并指定了它的值。spacing 将依然使用它的缺省值 10
甚至必备参数 (例如 object,没有指定缺省值) 也可以采用命名参数的方式,而且命名参数可以以任意顺序出现。

这些看上去非常累,除非你意识到参数不过是一个字典。“通常” 不使用参数名称的函数调用只是一个简写的形式,Python 按照函数声明中定义的的参数顺序将参数值和参数名称匹配起来。大部分时间,你会使用“通常”方式调用函数,但是如果你需要,总是可以提供附加的灵活性。

调用函数时唯一必须做的事情就是为每一个必备参数指定值 (以某种方式);以何种具体的方式和顺序都取决于你。

进一步阅读

彩神时时彩全能版 江西时时彩几点开奖 重庆时时彩稳赚技巧软件 重庆时时彩投注技巧 极彩娱乐时时彩平台
时时彩源码lm0 吉林高中物理老师姓名 江西时时彩走势图dbshishicai88 重庆时时彩怎么注册 董狐时时彩
重庆时时彩综合走势图 重庆时时彩规则 时时彩杀号软件安卓版 万达娱乐平台招商主管 重庆时时彩模拟投注器
重庆时时彩真实吗 一号平台时时彩 时时彩官网投注平台 江西时时彩二星组选 彩霸王时时彩软件
内蒙古十一选五走势图表图 四川金7乐当日开奖查绚 福建11选5任三万能矩阵 福建11选5遗漏数据查询 河南十一选五中奖规
战江湖-炸金花 幸运飞艇开奖直播 快三怎么玩 云南快乐十分开奖结果 香港二分彩
重庆时时彩开奖有假吗 上海11选5任八推荐 重庆幸运农场计划软件 河北十一选五遗漏top10 双色球专家杀号
重庆时时彩教程 江苏快3投注 广西快乐10分彩票 深圳风采2009087 如何折纸飞机飞得远