【问题标题】:Pass Arguments from Function to Class Method将参数从函数传递到类方法
【发布时间】:2020-06-24 12:57:45
【问题描述】:

我认为这是编程 101,但我错过的课程:

我有一个类,其中大约 50 个默认参数被传递给 init。然后,用户可以在构造时为这些参数提供不同的值,或者他们可以以正常方式修改结果属性。

我想做的是创建一个函数,可能在该类之外,允许用户创建该类的多个版本,然后返回有用的信息。但是,函数中类的每次迭代都会有构造函数的不同参数。

如何最好地允许函数的用户为传递给类构造函数的函数提供参数。

这是我想要实现的目标:

class someClass(object):
    def __init__(self, a=None, b=None, c=None, d=None, e=None):
        self.a = a
        self.b = b
        self.c = c
        self.d = d
        self.e = e

    def some_method(self):
        # do something
        return # something useful

simulations = {'1': {'a':3, 'e':6},
               '2': {'b':2, 'c':1}}

def func(simulations=simulations):
    results = []
    for sim in simulations.keys():
        sc = someClass(simulations[sim]) # use the arguments in the dict to pass to constructor
        results.append(sc.some_method())
    return results

【问题讨论】:

    标签: python function class arguments


    【解决方案1】:

    您可以使用**unpack a dictionary into named keywords

    sc = someClass(**simulations[sim])
    

    第一次将3 提供为a6 作为e,然后将2 作为b1 作为c 第二次提供。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      • 1970-01-01
      • 2022-09-24
      • 2013-09-11
      • 1970-01-01
      相关资源
      最近更新 更多