【问题标题】:How do I store identical arguments to be used by multiple functions如何存储供多个函数使用的相同参数
【发布时间】:2014-11-14 04:16:49
【问题描述】:

我有多个函数将使用相同的参数。是否可以只将参数存储到变量中,以便我可以将变量传递给多个函数?

例子:

#Store the arguments into a variable:
Arguments = (pos_hint={'center_x': 0.5, 'center_y': 0.5},
             size_hint=(1, 1), duration=2) #possible?


function1(Arguments) #Then pass variable to first function
function2(Arguments) #Then pass variable to different function
function3(Arguments) #etc.
...

【问题讨论】:

    标签: python function python-2.7 arguments


    【解决方案1】:

    您可以将参数存储在字典中,然后使用** unpacking syntax

    Arguments = {
        'pos_hint': {'center_x': 0.5, 'center_y': 0.5},
        'size_hint': (1, 1),
        'duration': 2
    }
    
    function1(**Arguments)
    function2(**Arguments)
    function3(**Arguments)
    

    下面是一个演示:

    >>> def func(a, b, c):
    ...     return a + b + c
    ...
    >>> dct = {'a':1, 'b':2, 'c':3}
    >>> func(**dct)
    6
    >>>
    

    基本上,做:

    func(**dct)
    

    相当于:

    func(a=1, b=2, c=3)
    

    【讨论】:

    • 这可能是一个不好的问题,但我如何打印 **dct 以便我自己查看输出?谢谢您,您的解决方案非常有效。
    • 我不太明白你的意思。执行**dct 不会更改字典。如果您想查看字典的内容,只需执行print dct。您到底在寻找什么输出?
    • 输入是“'duration':2”,但你说解包的输出是'duration = 2'。我只是想通过在解包时打印输出来亲眼看看。
    • 我不认为你想要什么是可能的。 ** 语法是一个特殊的工具,它告诉 Python 将字典应用于函数的参数。在您所想的意义上,没有“输出”。此外,冒号: 用于字典文字,因为这是Python 的设计者希望您分配键的方式。不过,您在函数调用中使用=,这就是它不同的原因。
    猜你喜欢
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多