如下的代码大家应该都见过:
def func1(n): if n <= 0:
print('请输入一个整数!')
func1(int(input()))
elif n <= 2:
return 1
else:
return func1(n-1)+func1(n-2)
这个是是一个简单的函数处理,得到斐波那契数列的第N个数的值,这里的入参就很简单,只有一个。实际上python支持按位置读取参数和按关键词读取参数两种设置,下面具体讲解。
def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2): ----------- ---------- ---------- | | | | Positional or keyword | | - Keyword only -- Positional only
上图是用来记忆的,下面简单讲解一下。
什么是按位置读取,就是说,入参严格按照函数定义时的位置来依次读取,入参的数量必须足够。
什么是按关键词读取,就是说,可以写成n1=1这样的形式,这时参数位置不需要考虑,入参的数量也必须是足够的。
一般情况下,写成def func1(n1,n2):这样形式的函数,在调用时只能使用按位置和按参数入参的其中一种,要么按位置写参数,不要写关键词,要么都写关键词。
如果想要混用,会用到/和*的参数标识符,"/"之前的参数都必须按位置读取,"*"之后的参数都必须写关键词,如上图的格式,就可以做到按位置读取参数和写关键词读取参数两者的混用,这也是函数使用时,可以方便使用,比如必须读取的参数,完全可以用按位置来读取,一些多数场景使用默认参数的参数,就可以用关键词模式来读取,提高函数的灵活性。
以上的笔记参考python的英文文档:4. More Control Flow Tools — Python 3.11.4 documentation
标签:func1,位置,读取,python,关键词,入参,参数,技巧 From: https://www.cnblogs.com/soccerchen/p/17573713.html