Re: avoid the redefinition of a function

Discussion in 'Python' started by Michael Torrie, Sep 12, 2012.

  1. On 09/12/2012 06:56 AM, Jabba Laci wrote:
    > I have an installer script that contains lots of little functions. It
    > has an interactive menu and the corresponding function is called. Over
    > time it grew long and when I want to add a new function, I should give
    > a unique name to that function. However, Python allows the
    > redefinition of functions:
    >
    > #!/usr/bin/env python
    >
    > def step_1():
    > print 1
    >
    > def step_1():
    > print 2
    >
    > step_1()
    >
    > This will call the 2nd function. Now my functions are called step_ID
    > (like step_27(), step_28(), etc.). How to avoid the danger of
    > redefinition? Now, when I write a new function, I search for its name
    > to see if it's unique but there must be a better way.


    I don't understand the other poster's suggestion to your problem. I
    have looked at your script and think I understand how you are using
    them. Keep in mind that functions in python are just objects. So
    rather than define them as step_##() and then search the globals list
    for them, why not just define them as descriptive functions (for
    example, "install_java") and then put them into a list.

    For example:

    def install_java():
    pass

    def install_tomcat():
    pass


    steps = [install_java, install_tomcat, etc]
    # or steps.append(install_java) if steps already has stuff in it, etc

    # then:
    for step in steps:
    step()
     
    Michael Torrie, Sep 12, 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:
    187
    Ramchandra Apte
    Sep 12, 2012
  2. D'Arcy Cain
    Replies:
    0
    Views:
    184
    D'Arcy Cain
    Sep 12, 2012
  3. Jabba Laci
    Replies:
    3
    Views:
    199
    Peter Otten
    Sep 13, 2012
  4. Tim Chase
    Replies:
    0
    Views:
    177
    Tim Chase
    Sep 12, 2012
  5. Terry Reedy
    Replies:
    0
    Views:
    182
    Terry Reedy
    Sep 12, 2012
Loading...

Share This Page