diff options
author | Marion <marion.zepf@gmail.com> | 2013-07-23 09:30:05 (GMT) |
---|---|---|
committer | Marion <marion.zepf@gmail.com> | 2013-07-23 09:30:05 (GMT) |
commit | 952e46d480ba7c091e35962ecf9295fe1b02b31f (patch) | |
tree | 280708ccc62341e03346e2475072a99c9b1c6afd /TurtleArt/tabasics.py | |
parent | 1071c82c317933a3251fe0c0c5028afbb5615e73 (diff) |
define multiply-used Primitives only once
Diffstat (limited to 'TurtleArt/tabasics.py')
-rw-r--r-- | TurtleArt/tabasics.py | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/TurtleArt/tabasics.py b/TurtleArt/tabasics.py index 12eeb7a..3bb56824 100644 --- a/TurtleArt/tabasics.py +++ b/TurtleArt/tabasics.py @@ -101,6 +101,12 @@ class Palettes(): def __init__(self, turtle_window): self.tw = turtle_window + self.prim_cache = { + "check_number": Primitive(self.check_number, export_me=False), + "convert_value_for_move": Primitive(self.convert_value_for_move, + export_me=False) + } # avoid several Primitives of the same function + self._turtle_palette() self._pen_palette() @@ -136,8 +142,7 @@ class Palettes(): 'forward', 1, Primitive(Turtle.forward, - slot_wrappers={0: Primitive(self.convert_value_for_move, - export_me=False)}, + slot_wrappers={0: self.prim_cache["convert_value_for_move"]}, call_afterwards=self.after_move)) palette.add_block('back', @@ -150,8 +155,8 @@ class Palettes(): self.tw.lc.def_prim('back', 1, Primitive(Turtle.forward, slot_wrappers={0: Primitive(float.__neg__, - slot_wrappers={0: Primitive(self.convert_value_for_move, - export_me=False)})}, + slot_wrappers={0: self.prim_cache["convert_value_for_move"] + })}, call_afterwards=self.after_move)) primitive_dictionary['clean'] = self._prim_clear @@ -179,8 +184,7 @@ in degrees)')) 'left', 1, Primitive(Turtle.right, slot_wrappers={0: Primitive(float.__neg__, - slot_wrappers={0: Primitive(self.check_number, - export_me=False)})}, + slot_wrappers={0: self.prim_cache["check_number"]})}, call_afterwards=self.after_right)) palette.add_block('right', @@ -195,8 +199,7 @@ degrees)')) 'right', 1, Primitive(Turtle.right, - slot_wrappers={0: Primitive(self.check_number, - export_me=False)}, + slot_wrappers={0: self.prim_cache["check_number"]}, call_afterwards=self.after_right)) primitive_dictionary['arc'] = self._prim_arc @@ -228,10 +231,9 @@ degrees)')) 2, Primitive(Turtle.set_xy, slot_wrappers={(0, 2): Primitive(Primitive.make_tuple, - slot_wrappers={0: Primitive(self.convert_value_for_move, - export_me=False), - 1: Primitive(self.convert_value_for_move, - export_me=False)})}, + slot_wrappers={0:self.prim_cache["convert_value_for_move"], + 1:self.prim_cache["convert_value_for_move"] + })}, call_afterwards=self.after_move)) define_logo_function('tasetxy', 'to tasetxy :x :y\nsetxy :x :y\nend\n') @@ -834,8 +836,7 @@ number of seconds')) Primitive(self.tw.lc.loop, slot_wrappers={0: Primitive(Primitive.controller_repeat, slot_wrappers={0: Primitive(self.tw.lc.int, - slot_wrappers={0: Primitive(self.check_number, - export_me=False)})})}), + slot_wrappers={0: self.prim_cache["check_number"]})})}), True) primitive_dictionary['if'] = self._prim_if |