没有默认值的可选参数

问题描述

参数的 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')

其中 ab位置或关键字参数,c 是可选的位置或关键字参数

def fun(a,*,c,d='foo'):
    ...
fun(1,c='bar')
fun(1,c='bar',d='baz')
fun(a=1,d='baz')

其中 ab位置或关键字 args,c强制性 kwarg 和 d 是 可选 kwarg

def fun(a,/,d,e='foo'):
    ...
fun(1,3)
fun(1,c=3)
fun(1,c=3,d='bar')

其中ab仅定位参数,c位置或关键字参数和{{1} } 是一个强制 kwarg,d 是一个可选 kwarg

,

t_flags *flags; flags = (t_flags*)malloc(sizeof(t_flags)); flags->total = 0; *args 是没有默认值的可选参数

-- comment by Pranav Hosangadi