Re: avoid the redefinition of a function

Discussion in 'Python' started by Dave Angel, Sep 13, 2012.

  1. Dave Angel

    Dave Angel Guest

    On 09/12/2012 12:56 PM, Jabba Laci wrote:
    > Thanks for the answers. I decided to use numbers in the name of the
    > functions to facilitate function calls. Now if you have this menu
    > option for instance:
    >
    > (5) install mc
    >
    > You can type just "5" as user input and step_5() is called
    > automatically. If I use descriptive names like install_java() then
    > selecting a menu point would be more difficult. And I don't want users
    > to type "java", I want to stick to simple numbers.
    >
    > Laszlo


    Many of the other answers were interesting and useful, but I don't think
    anyone else pointed out the real problem with your code.

    If you have a bunch of functions defined in one place, and a bunch of
    choices for the user defined in another, you need to make one place
    which maps them all together. That way, when you define a new function,
    you also define the part of the menu that tells the user what to type.

    For example, you might make a list like the following:

    CHOICES = [("install mc", install_mc),
    ("install java", install_java),
    ....etc....
    ]

    And your input routine will be something like:
    for index, item in iterate(CHOICES):
    print "(", index, ")", item[0]
    choice = int(raw_input())
    function = CHOICES[choice][1]

    This isn't exactly the way i'd do it, and of course it's missing all
    kinds of error checking. But the point is that adding a new function to
    the menu only requires one place to "know" the number of the function.
    And the number is only indirectly known, as the location in the CHOICES.

    I hope this sparks some ideas.


    --

    DaveA
     
    Dave Angel, Sep 13, 2012
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Jabba Laci

    avoid the redefinition of a function

    Jabba Laci, Sep 12, 2012, in forum: Python
    Replies:
    2
    Views:
    194
    Ramchandra Apte
    Sep 12, 2012
  2. D'Arcy Cain
    Replies:
    0
    Views:
    188
    D'Arcy Cain
    Sep 12, 2012
  3. Michael Torrie

    Re: avoid the redefinition of a function

    Michael Torrie, Sep 12, 2012, in forum: Python
    Replies:
    0
    Views:
    190
    Michael Torrie
    Sep 12, 2012
  4. Jabba Laci
    Replies:
    3
    Views:
    205
    Peter Otten
    Sep 13, 2012
  5. Tim Chase
    Replies:
    0
    Views:
    180
    Tim Chase
    Sep 12, 2012
Loading...

Share This Page