python函数,其中一个参数是外部的(如果提到),或者是内部的(如果没有提到)
我想定义一个Python函数,其中一个参数在调用函数时声明为外部参数,而在调用函数时未提及则为内部参数。 一个简单的例子可以澄清我的问题:python函数,其中一个参数是外部的(如果提到),或者是内部的(如果没有提到),python,Python,我想定义一个Python函数,其中一个参数在调用函数时声明为外部参数,而在调用函数时未提及则为内部参数。 一个简单的例子可以澄清我的问题: def func(a, b): c = 4 try: b except: b= c return a + b 现在我想要一些我能写的东西 func(2, 1) 给我结果2+1=3,我甚至可以写 func(2) 该函数将生成一个c+a=6的解 我该怎么做呢?只要写 def func(a, b
def func(a, b):
c = 4
try:
b
except:
b= c
return a + b
现在我想要一些我能写的东西
func(2, 1)
给我结果2+1=3,我甚至可以写
func(2)
该函数将生成一个c+a=6的解
我该怎么做呢?只要写
def func(a, b=4):
return a + b
>>> func(2)
6
>>> func(2, 1)
3
如果b的默认值事先未知,则可以执行以下操作:
def func(a, b=None):
if b is None:
b = some_function_that_generates_b()
return a + b
您正在描述一个默认参数。Python为您做到了这一点: 或者,如果涉及更多逻辑,您可能需要考虑:
def func(a, b=None):
if b is None:
try:
b = fancy_function()
except FancyException:
b = 4
return a + b
对于可变的默认值也是如此:
def func(a, b=None):
if b is None:
b = []
b.append(a)
return b
问题是,在我的例子中,通过打开一个文件并处理其中的数据,可以在函数中生成b。因此,我更喜欢这样的说法:如果b被声明到函数调用中,而不是使用它,否则请执行此任务并从insideSide生成b注意:永远不要使用裸函数,除非:。将要捕获的异常指定为:exception ValueError或exception NameError等。否则,您将阻止所有内容,包括中断信号或内存错误之类的内容,因为您实际上无法处理它们,因此您永远不应该捕获这些内容。
def func(a, b=None):
if b is None:
b = []
b.append(a)
return b