繁体   English   中英

在python中将相同的参数从外部函数传递给内部函数

[英]passing same argument from outer function to inner function in python

我有一个内部函数函数

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 函数时,它工作正常

main_function(scenario = 'name',myopic_variable = True)

但是当我更改 myopic_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 因为我们在调用此函数时没有传递任何参数。 因此,它将 takr 此处为 True 的默认参数。

如果您运行inner_fun(False) ,它将打印 False 因为这次您在函数中传递了一个优先级高于默认值的参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM