Search code examples
pythondatabasefunctiontkinterpassword-generator

How to run script with a function? (repeatedly)


I have a Python program where a function imports another script and runs it. But the script gets run only the first time the function is called.

def Open_Generator(event): import PasswordGenerator

Any tips?

*The function is called using a button in a tkinter window


Solution

  • This is by design. You should only import a module once. Trying to import a module more than once will cause Python to re-fetch the module object from the cache, but this won't cause the module's code to execute a second time.

    Most well-designed modules won't do anything right away when you import them, or at least won't do anything obviously visible. Generally, if you want a module to do work, you need to call one of its functions.

    I'm guessing your PasswordGenerator module has some code at the file-level scope. In other words, it has code that isn't inside a function. Try to move that code into a function. Then you can call that function from Open_Generator.

    import PasswordGenerator
    
    def Open_Generator(event):
        my_password = PasswordGenerator.generate_password()