python第二章-2.7 更多关于方法定义

python第二章-2.7 更多关于方法定义

2.7.1 默认参数值
最有用的形式就是给一个或多个变量制定默认值。这种方法可以创建一个允许调用时比定义
时需要更少的参数。例如:
def ask_ok(prompt, retries=4, complaint=’Yes or no, please!’):
while True:
ok = input(prompt)
if ok in (’y’, ’ye’, ’yes’):
return True
if ok in (’n’, ’no’, ’nop’, ’nope’):
return False
retries = retries - 1


if retries < 0:
raise IOError(’refusenik user’)
print(complaint)


这个方法可以用以下几种方法调用:
 给个唯一常量: ask_ok(’Do you really want to quit?’)
 给一个变量: ask_ok(’OK to overwrite the file?’, 2)
 设置所有的变量:
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()
将会输出5
重要提醒: 默认值仅被设置一次,这与以前默认值为可变对象(如列表、字典和多数类实
例时)有很大的区别。例如, 接下来的方法累计被传入的参数变量到下次调用:
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、付费专栏及课程。

余额充值