我有一个内部函数
def inner_function(scenario = 'name',myopic_variable = True):
if scenario == 'name':
print('Name')
if myopic_variable == True:
print('Myopic is True')
以及像这样的主要功能。
def main_function(scenario = 'name',myopic_variable = True):
inner_function()
现在,当我调用像这样的主函数时,它工作得很好
main_function(scenario = 'name',myopic_variable = True)
但当我更改mypic_variable=False时它仍然给我相同的输出为什么?
def inner_function(scenario = 'name',myopic_variable = True):
您在此处传递的是默认值true。
def main_function(scenario = 'name',myopic_variable = True):
inner_function()
这里,没有参数传递给inner_functions()
,它打印默认值True
。要使其正确,请调用inner_function(myopic_variable = myopic_variable)
这是因为您在python中使用了一种称为默认参数的东西。为了理解你所面临的问题,让我们举一个例子:
def inner_fun(a=True):
print(a)
inner_fun()
将打印True,因为我们在调用此函数时没有传递任何参数。因此,它将使用默认参数,此处为True。
如果运行inner_fun(False)
,它将打印False,因为这一次您在函数中传递的参数的优先级高于默认值。