玉米花机,长途汽车票查询时刻表 票价,异界逆神
最有用的形式是对一个或多个参数指定一个默认值。这样创建的函数,可以用比定义时允许的更少的参数调用,比如:
def ask_ok(prompt, retries=4, reminder='please try again!'): 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 valueerror('invalid user response') print(reminder)
这个函数可以通过几种方式调用:
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
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
新手学习Python2和Python3中print不同的用法
Python基于os.environ从windows获取环境变量
网友评论