gpt4 book ai didi

python变量值触发参数默认值

转载 作者:行者123 更新时间:2023-12-01 05:41:40 26 4
gpt4 key购买 nike

在Python中,是否可以为变量设置一个值,以便在将其传递给函数时该函数将使用参数的默认值?例如:

def my_function( a = "default_value" ) :
print a

my_function( my_variable )

将打印“默认值”。这样做会显得Pythonic吗?

最佳答案

您通常不会这样做;您完全保留参数并让 python 来填充默认值:

my_function()

您可以使用 inspect.getargspec() function 从函数中检索默认值.

from inspect import getargspec

defaults = getargspec(my_function).defaults
my_variable = defaults[0]
my_function(my_variable)

当然,你的例子相当简单;它只需要一个您知道有默认值的参数。在更常见的情况下,也有位置参数,但没有默认值。

要重建哪些参数具有默认值,您需要重新组合参数及其默认值:

argspec = getargspec(my_function)
keyword_args = dict(zip(argspec.args[-len(argspec.defaults):], argspec.defaults))
positional_args = [None] * (len(argspec.args) - len(argspec.defaults)) # set all positionals to None
my_function(*positional_args, **keyword_args)

演示:

>>> from inspect import getargspec
>>> defaults = getargspec(my_function).defaults
>>> my_variable = defaults[0]
>>> my_function(my_variable)
default_value
>>> argspec = getargspec(my_function)
>>> keyword_args = dict(zip(argspec.args[-len(argspec.defaults):], argspec.defaults))
>>> positional_args = [None] * (len(argspec.args) - len(argspec.defaults)) # set all positionals to None
>>> my_function(*positional_args, **keyword_args)
default_value
>>> keyword_args
{'a': 'default_value'}

关于python变量值触发参数默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17385242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com