作者darkgerm (黑骏)
看板Python
标题[问题] 一次传多个 keyword 给 function
时间Sat Jul 21 02:52:13 2012
我在写 VPython 时,想要画很多有类似属性的物体
可能就会写出像下面这样的东西
cone(pos=(0,3,0), axis=(0,-3,0),
material=materials.wood, color=color.orange
frame=f)
sphere(pos=(0,3,0),
material=materials.wood, color=color.orange
frame=f)
box(pos=(0,-.25,0), size=(4,.5,4),
material=materials.wood, color=color.orange
frame=f)
其中
黄色部分是完全一样的
因此我想把他包成变数,如果要修改值的话也只要改那个变数,不用到处改
例如:
params1 = {'material': materials.wood, 'color':color.orange}
params2 = {'frame': f}
cone(pos=(0,3,0), axis=(0,-3,0), **params1, **params2)
sphere(pos=(0,3,0), **params1, **params2)
box(pos=(0,-.25,0), size=(4,.5,4), **params1, **params2)
但上面那个方法是 Syntax Error
原因是 **keywords 後不能再有其他参数
我实在不想每个都写这麽长而且要一个一个改值...
请问有比较好的写法吗?
--
光明 的背後 是 黑暗
黑暗 的背後 还是 黑暗
由此可知 黑暗 > 光明 Q.E.D.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.24.38
1F:推 retard:param = dict(params1); param.update(params2); 07/21 03:36