Python嵌套调用函数时event参数无法传递问题求助
问题排查与解决方法
你贴出的示例代码本身的参数传递逻辑是正确的,如果实际运行中event无法传入save函数,可按以下步骤排查:
- 第一步:检查实际运行代码的
save函数定义的参数顺序是否和调用时一致,不要出现def save(event, ds)但调用时写save(ds, event)的参数顺序错位问题 - 第二步:检查
save函数内部是否定义了和event同名的局部变量,导致传入的参数被覆盖 - 第三步:如果确认参数传递逻辑无错,可以在调用
save前先打印event的属性验证有效性,调试代码参考:
def handle_store(event): ds = event.dataset # 先验证event对象是否正常 print(f"event in handle_store has file_meta: {hasattr(event, 'file_meta')}") save(ds, event) def save(ds, event): # 验证传入的event对象是否正常 print(f"event in save has file_meta: {hasattr(event, 'file_meta')}") ds.file_meta = event.file_meta ds.save_as(ds.SOPInstanceUID, write_like_original=False) return 0x0000 handlers = [(evt.EVT_C_STORE, handle_store)]
如果运行后发现handle_store里能打印到event属性,但save里打印不到,唯一可能就是参数传递时的拼写错误,重新核对函数定义和调用的参数拼写即可。
内容的提问来源于stack exchange,提问作者user17489801
相关产品推荐
相关产品推荐

