我正在用一个CAD程序中的GUI框制作一个脚本,用户在视口中选择大约7个不同的曲面。当用户点击“确定”时,我将这些值传递给另一个函数
传递给它的函数如下所示
def MeshingTools(od_idSurf, trgSurf, PipeBodySurf, sealSurf, threadSurf, BodySurf, cplgEndSurf):
问题是:如果用户不需要选择其中一个曲面,我会得到一个错误消息,MeshingTools()
正好接受7个非关键字参数(给定2个)
我怎样才能避开这个问题?在
更新:
我尝试了关键字参数,但没有得到我需要的东西。在
def MeshingTools(**kwargs):
print kwargs
当我只选择1个曲面时,我得到以下结果
{'PipeBodySurf': (mdb.models['FullCAL4'].rootAssembly.instances['PinNew-1'].edges[151], mdb.models['FullCAL4'].rootAssembly.instances['PinNew-1'].edges[153])}
如果我尝试打印PipeBodySurf,它会显示未定义全局名称。在
有什么想法吗?在
最终更新(已解决)
现在我看到了**kwargs
创建了一个字典,因此不需要在代码的其余部分使用参数名,而是使用kwargs['parameter']
,然后它将使用这些值
您可以使用与
*
操作一起传递的任意参数:函数可以使用前面带有一个或两个
*
字符的特殊参数来收集任意数量的额外参数。(*
表示位置参数,**
表示关键字参数)相关问题 更多 >
编程相关推荐