【问题标题】:Can I pass the name of a parameter as an argument?我可以将参数的名称作为参数传递吗?
【发布时间】:2018-10-11 17:35:56
【问题描述】:

假设我有一个函数F,带有两个可选参数par1par2

我想写一个新函数:

def some_plot(parameter):
    array = []
    for n in range(100):
        array.append(F(parameter = n))
    # make some plot using array

然后我想通过调用some_plot('par1')(或some_plot(par1))来制作一些情节,这两个都拆分错误。

是否可以将参数名称作为参数传递?

【问题讨论】:

  • 您到底希望这做什么?我认为我们需要一个更完整的示例来理解和回答您的问题。
  • 你是说F(par1=n)loop_through调用者
  • 你尝试的时候发生了什么?您的目标和实施不明确,因为您尚未发布完整的尝试。
  • 请按照您创建此帐户时的建议阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布 MCVE 代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中并重现您描述的问题。
  • @abarnert 我使示例更复杂以显示目的

标签: python parameters arguments parameter-passing


【解决方案1】:

假设您将参数名称作为字符串传递,则可以使用关键字参数扩展:

def loop_through(parameter):

    for n in range(100):
        kwargs = {parameter: n}
        F(**kwargs)

【讨论】:

    【解决方案2】:

    您可以通过构造字典并使用** 语法传递它来做到这一点。

    def loop_through(arg_name):
        for n in range(100):
            F(**{arg_name: n})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 2016-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-12
      相关资源
      最近更新 更多