我打算编写一个例程来实现以下功能:根据“方法”,“之前”和“之后”,计算费用。不确定将json作为函数的输入传递是一种好习惯吗?这是否意味着该功能试图实现太多目标?当我将默认值分配给“目标”时,Pycharm发出警告“可变对象作为默认参数”。
cons.append({'type': 'ineq', 'fun': lambda x: MyFunction(x,True, copy.copy(i))})
答案 0 :(得分:2)
关于警告可变对象作为默认参数
请参考以下内容
"Least Astonishment" and the Mutable Default Argument
可变对象作为默认参数的行为类似于静态变量
关于将JSON作为函数输入进行传递,除非函数在JSON上执行很多事情,否则我认为这本身不是一个坏习惯。
例如:如果您需要删除/处理JSON中的一组特定键,则需要将JSON传递给执行此功能的函数。