我遇到了许多文章,但并没有完全解决我正在尝试做的事情。我希望这不是一个重复的问题。
我正在编写一个 Python 脚本,它与我的 PC 之外的几个现实世界的对象交互。我编写了包含与这些对象交互所需的函数的类。我还成功编写了一个函数,它在风格上不是非常面向对象,它实例化这些类的实例,从中获取数据,并将其全部保存到 CSV 文件中。这一切都很好。我被绊倒的地方是试图使函数更具适应性,这样我就不必每次想添加另一个类实例或从预先存在的实例获取不同的数据点时都重新编写它。
我正在尝试的方法是创建一个列表,其中包含类实例的名称和特定的函数名称,以从这些实例中获取数据。然后我将此列表传递给另一个函数。理想情况下,这个其他函数将为我的 CSV 文件创建一个标题(以便可以更轻松地解释数据),然后继续收集数据。
伪代码:
inst1 = my_class_1()
inst2 = my_class_2()
filename = 'fubar.csv'
control_list = ['inst1', 'value1', 'inst2', 'value']
my_fucntion(filename, control_list):
# Code to create a header for CSV file in the form inst1-value1, inst2-value2
# Loop to control the number of times to grab data
# Code which iterates control_list and builds up things like inst1.value1(), inst2.value2(),
# etc. and then appends the results to a list
# write results list to filename
如果我将 control_list 的所有元素作为字符串传递到我的函数中,我可以轻松地为结果文件生成标题,但我不知道如何获取这些字符串并生成类似的inst1.value1()
内容,以便 Python 可以访问我的类中的函数。我认为,如果我创建列表,就像[inst1.value1(), inst2.value2()]
我可以从我的类中获取数据一样,但我无法弄清楚如何以这种方式创建我的头文件。
如果我上面概述的方法不起作用,我愿意接受其他方法。