On 03/27/2013 02:34 AM, Michael Herrmann wrote:
After everybody's input, I think Design #2 or Design #4 would be the best fit 
for us:

Design #2:
         notepad_1 = start("Notepad")
         notepad_2 = start("Notepad")
         switch_to(notepad_1)
         write("Hello World!")
         press(CTRL + 'a', CTRL + 'c')
         switch_to(notepad_2)
         press(CTRL + 'v')

Design #4:
         notepad_1 = start("Notepad")
         notepad_2 = start("Notepad")
         notepad_1.activate()
         write("Hello World!")
         press(CTRL + 'a', CTRL + 'c')
         notepad_2.activate()
         press(CTRL + 'v')

Normally, I'd go for Design #4, as it results in one less global, is better for 
autocompletion etc. The thing with our library is that it tries to make its 
scripts as similar as possible to giving instructions to someone looking over 
their shoulder at a screen. And in this situation you would just say

        activate(notepad)

rather than

        notepad.activate().

So the problem lies in a difference between Python's and English grammar. For 
beauty, I should go with #2. For pragmatism, I should go with #4. It hurts, but 
I'm leaning towards #4. I have to think about it a little.

Go with #2.  Not everything has to be a method.  len(), for example, is not a 
method, even though it calls one.

The 'with' support would also be cool. __enter__ sets the new global window object whilst saving the old one, and then __exit__ restores the old one.

--
~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to