In <[EMAIL PROTECTED]>, Shane Geiger wrote: > Run the script and then try to change the variable project_name from the > ipython prompt and then type create() > and the new value you assigned will *not* be used. I tried to use "def > create(project_name = project_name):" Even that didn't work. > > What slight of hand is necessary? > > import os, sys > > project_name = 'python_packages' > group_name = 'sgeiger' > repo = '/var/svn' > > def create(repo=repo,group_name=group_name,project_name=project_name): > #def create(): > #os.system("sudo mkdir -p " + repo ) > #os.system("sudo svnadmin create " + repo) > #os.system("sudo chown -R " + group_name + " " + repo) > print "sudo mkdir -p " + repo + '/' + project_name > print "sudo svnadmin create " + repo + '/' + project_name > print "sudo chown -R " + group_name + " " + repo + '/' + project_name > > if __name__ == '__main__': > sys.argv.append('-cl') > from IPython.Shell import IPShellEmbed > ipshell = IPShellEmbed() > print "Please set these variables: project_name, group_name ...and > then type create()" > ### I even tried to put all my > ipshell() # this call anywhere in your program will start IPython
You have to call the function with arguments. The default values are only evaluated once when the ``def`` statement is executed, not every time the function is called. Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list