07/01/25 21:49:38 p9UFxO650
>>530
config.py に以下を書いてみたら、paramlist に *args とか書いて
余分な引数をタプルとして受け取れるようにできたよ
def MyCmdScriptCall(self, mod, *args):
if len(args) < len(self.format):
raise CommandFailedException, 'parameter num mismatch.'
param_objects = []
for (f, a) in zip(self.format, args):
if f == 's': param_objects.append(a)
elif f == 'i': param_objects.append(int(a))
elif f == 'f': param_objects.append(float(a))
param_objects.extend( args[len(self.format):] )
self.func( *param_objects )
CmdScript.__call__ = MyCmdScriptCall
テスト用:
<script name='print' paramlist='*args' format=''>
<![CDATA[
import sys
for v in args: sys.stderr.write("%s\n" % v)
]]>
</script>