提问人:Sudhanshu Bharadwaj 提问时间:7/19/2022 更新时间:7/19/2022 访问量:25
在 python 中使用 globals() 操作变量
Manipulating variables using globals() in python
问:
我希望可以选择以简洁的方式将我的论点传递给函数。因此,我没有直接传递所有参数,而是将它们作为参数函数定义包含在内,并将所有此类参数传递为 .然后我执行以下操作Common_Args
for key, value in Common_args.items():
if key in locals():
globals()[key] = value
这就是问题所在。即使控件进入 if 条件(使用调试器检查),参数的值也不会更改,但它应该更改,对吧?指南已经确认这应该有效,如果我在调试器中运行单个语句,变量的值确实会发生变化。
我的函数定义更详细的是
def plotLFPData1Channel(plotHandles=None, channelString="", stimulus_list=None, folderName=None, analysisType=None,
timeVals=None, plotColor=None, blRange=None, stRange=None, referenceChannelString=None,
badTrialNameStr=None, useCommonBadTrialsFlag=None ,*,Common_args=None):
# first we have to unpack common args
if Common_args is not None:
for key, value in Common_args.items():
if key in locals():
globals()[key] = value
我这样称呼这个函数
result=plotLFPData1Channel(plotHandles=ax.flatten(), channelString=analogChannelString, stimulus_list=stimValsToUse,analysisType=analysisType,Common_args=commonArgs)
跟commonArgs={"folderName":folderName , "timeVals":timeVals, "plotColor":plotColor, "blRange":blRange, "stRange":stRange, "referenceChannelString":referenceChannelString, "badTrialNameStr":badTrialNameStr, "useCommonBadTrialsFlag":useCommonBadTrialsFlag}
答: 暂无答案
评论
plot...(**commonArgs)