问题描述
参数的 Python Documentation 说明如下:
参数 - 函数(或方法)定义中的命名实体,它指定函数可以接受的参数(或在某些情况下,参数)... 参数可以指定可选参数和必需参数,以及默认值对于一些可选参数。
纯粹出于好奇,我想知道为什么包含some这个词。是否可以有一个没有默认值的可选参数?
解决方法
*
前缀表示“任意数量的位置参数”,以它为前缀的参数可以不带默认值进行声明。
“一些”一词与这个原因有关,您不必为所有可选参数提供默认值。
在最近的版本中,您可以通过多种方式定义函数参数。以下是它们的定义和调用方式:
def fun(a,b,c='foo'):
...
fun(1,2)
fun(1,2,'bar')
fun(1,b=2)
fun(1,b=2,c='bar')
fun(a=1,c='bar')
其中 a
和 b
是位置或关键字参数,c
是可选的位置或关键字参数
或
def fun(a,*,c,d='foo'):
...
fun(1,c='bar')
fun(1,c='bar',d='baz')
fun(a=1,d='baz')
其中 a
和 b
是 位置或关键字 args,c
是 强制性 kwarg 和 d 是 可选 kwarg
或
def fun(a,/,d,e='foo'):
...
fun(1,3)
fun(1,c=3)
fun(1,c=3,d='bar')
其中a
和b
是仅定位参数,c
是位置或关键字参数和{{1} } 是一个强制 kwarg,d
是一个可选 kwarg
t_flags *flags;
flags = (t_flags*)malloc(sizeof(t_flags));
flags->total = 0;
和 *args
是没有默认值的可选参数
-- comment by Pranav Hosangadi