Python:将参数从顶级函数传递到嵌入式函数
这是一个简化的例子。但基本上,我有一个函数中的函数。我想将参数从顶级函数传递到嵌入式函数,但它不起作用。我如何解决这个问题 多谢各位Python:将参数从顶级函数传递到嵌入式函数,python,Python,这是一个简化的例子。但基本上,我有一个函数中的函数。我想将参数从顶级函数传递到嵌入式函数,但它不起作用。我如何解决这个问题 多谢各位 def Check(file_name, mh_criticalval): test_file=file_name def eval_value(excel_sht, excel_col, mh_value): if excel_sht.cell(row=i, column=excel_col) > mh_value
def Check(file_name, mh_criticalval):
test_file=file_name
def eval_value(excel_sht, excel_col, mh_value):
if excel_sht.cell(row=i, column=excel_col) > mh_value:
cell_cny_b=excel_sht.cell(
row=i,
column=excel_col
).value='OK'
eval_value(sht, 9, mh_criticalval)
Check('test.xlsm',1)
方法1:取消嵌套 这里最明显的方法是删除嵌套函数。这样做很简单:
def eval_mh(excel_sht、excel_col、mh_值):
如果excel单元格(行=i,列=excel列)>mh值:
单元格\u cny\u b=excel\u sht.cell(行=i,列=excel\u col)。value='OK'
def CheckDiag(文件名,mh临界值):
测试文件=文件名
评估(第9页,评估临界值)
检查诊断('test.xlsm',1)
我们在这里所做的就是将内部函数移出但是,如果仍然希望嵌套,请尝试以下操作
方法2:局部/全局变量利用
这里,我们用mh_criticalval替换所有mh_值实例
def CheckDiag(文件名,mh\u criticalval):
测试文件=文件名
def eval_mh(excel_sht,excel col):
如果excel单元格(行=i,列=excel列)>mh\U临界值:
单元格\u cny\u b=excel\u sht.cell(行=i,列=excel\u col)。value='OK'
评估(第9页)
检查诊断('test.xlsm',1)
方法3:为什么有两个函数?
在这个方法中,我们完全删除了这个函数
def CheckDiag(文件名,mh临界值):
测试文件=文件名
如果短单元(行=i,列=9)>mh\U临界值:
单元格\u cny\u b=sht.cell(行=i,列=9)。value='OK'
评估(第9页)
检查诊断('test.xlsm',1)
什么特别不起作用?有堆栈跟踪吗?或者它没有产生你想要的结果?你能添加你面临的问题吗?这个eval\u值(sht,9,mh\u criticalval)
调用中的sht
参数是什么。我想您没有初始化此值中的任何内容sht
来自哪里?为什么要在函数中使用函数?您的代码是否因为遗漏了可能相关的代码而缩进错误?你犯了什么错误?你期望看到什么?