问题描述
我想定义一个函数,通过更改输入可以采用不同的数据帧。例如,使用
def test (Source):
print('df'+ Source)
我想运行test('A')并获取数据帧df_A,运行test('B')并获取数据帧df_B,依此类推。但是它只读取'df_A'作为字符串而不是表。 df_A和df_B是预先定义的。
谢谢!
解决方法
如果您使用globals(),它将返回给您一个字典,该字典以字符串格式的变量名作为键,而变量值作为该键的对应值。
因此,以下代码解决了上述问题
let useMarker = UsedMarker(context: self.context)
useMarker.recording = currentRecording
useMarker.markerItem = chosenMarker
useMarker.id = UUID()
useMarker.hours = ... // etc
,
print命令仅打印使用“ df”和输入变量源构建的并置字符串。
要获取实际数据,需要使用eval()函数,如下所示:
def test (Source):
return eval('df_' + Source)
这将返回输出,就像在Jupyter单元格中有df_a一样。