python的初始值函数的简单介绍( 二 )


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 retries0:
raise OSError('uncooperative 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 关键字 。它测定序列中是否包含某个确定的值 。
默认值在函数 定义 作用域被解析python的初始值函数,如下所示:
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]
【python的初始值函数的简单介绍】[1, 2]
[1, 2, 3]
如果python的初始值函数你不想让默认值在后续调用中累积 , 你可以像下面一样定义函数:
def f(a, L=None):
if L is None:
L = []
L.append(a)
return L
关于python的初始值函数和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读