コンストラクターを使用するdict
と、少なくとも一連の引用符を入力する必要がなくなります。
self.bot = servo.Robot(dict(
waist = servo.Servo(3, 90, .02, 0),
shoulder = servo.Servo(4, 130, .03, 15),
elbow = servo.Servo(5, 110, .02, 19),
wrist = servo.Servo(6, 20, .01, 9),
claw = servo.Servo(7, 40, .01, 0)
), [5, 15, 25])
もちろん、次のようなヘルパー関数を作成することもできます。
def servos(**kwargs):
for k, v in kwargs.iteritems():
kwargs[k] = servo.Servo(*v)
return kwargs
その後:
self.bot = servo.Robot(servos(
waist = (3, 90, .02, 0),
shoulder = (4, 130, .03, 15),
elbow = (5, 110, .02, 19),
wrist = (6, 20, .01, 9),
claw = (7, 40, .01, 0)
), [5, 15, 25])
さまざまなタイプのインスタンスで多くの dicts-of-instances を実行する場合は、ヘルパーをジェネリックにすることができます。
def instance_dict(typ, **kwargs):
for k, v in kwargs.iteritems():
kwargs[k] = typ(*v)
return kwargs
# later...
self.bot = servo.Robot(
instance_dict(servo.Servo,
waist = (3, 90, .02, 0),
shoulder = (4, 130, .03, 15),
elbow = (5, 110, .02, 19),
wrist = (6, 20, .01, 9),
claw = (7, 40, .01, 0) ),
[5, 15, 25])