Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TurtleArt/tabasics.py
diff options
context:
space:
mode:
authorMarion <marion.zepf@gmail.com>2013-07-23 09:30:05 (GMT)
committer Marion <marion.zepf@gmail.com>2013-07-23 09:30:05 (GMT)
commit952e46d480ba7c091e35962ecf9295fe1b02b31f (patch)
tree280708ccc62341e03346e2475072a99c9b1c6afd /TurtleArt/tabasics.py
parent1071c82c317933a3251fe0c0c5028afbb5615e73 (diff)
define multiply-used Primitives only once
Diffstat (limited to 'TurtleArt/tabasics.py')
-rw-r--r--TurtleArt/tabasics.py29
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