Python官方3.2文档教程--方法定义-默认参数值

2.7.1 默认参数值

最有用的形式就是给一个或多个变量制定默认值。这种方法可以创建一个允许调用时比定义时需要更少的参数。例如:

 

def ask_ok(prompt, retries=4, complaint=Yes or no, please!):

while True:

ok = input(prompt)

if ok in (yyeyes):

return True

if ok in (nnonopnope):

return False

retries = retries - 1

if retries < 0:

raise IOError(refusenik user)

print(complaint)

这个方法可以用以下几种方法调用:

l 给个唯一常量: ask_ok(Do you really want to quit?)

l 给一个变量: ask_ok(OK to overwrite the file?, 2) 

l 设置所有的变量: 

       ask_ok(OK to overwrite the file?, 2, Come on, only yes or no!)

这个实例也介绍关键in的用法。其功能在于测试输入字符串是否还有特定的值。默认值也可以在方法定义时候就被限制范围。例如:

i = 5

def f(arg=i):

print(arg)

i = 6

f()

将会输出

重要提醒: 默认值仅被设置一次,这与以前默认值为可变对象(如列表、字典和多数类实例时)有很大的区别。例如, 接下来的方法累计被传入的参数变量到下次调用:

def f(a, L=[]):

L.append(a)

return L

print(f(1))

print(f(2))

print(f(3))

将会输出

[1]

[1, 2]

[1, 2, 3]

如果你不想默认值在两个调用时分享。你可以写如下方法代替上面。

def f(a, L=None):

if L is None:

L = []

L.append(a)

return L

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值