我想定义一个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的解决方案。
我该怎么做?
答案 0 :(得分:3)
您正在描述默认参数。 Python为您做到了这一点(see the docs):
def func(a, b=4):
return a + b
或者,如果涉及更多逻辑,您可能需要考虑:
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
答案 1 :(得分:2)
简单写一下
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