Jun-21-2019, 05:20 AM
Use
if __name__ == '__main__':
# my_nodule def foo(): print('foo') def bar(): print('bar') foobar = { 'foo': foo, 'bar': bar } if __name__ == '__main__': command = input('foo or bar, Choose one. ') foobar[command]()No do not get run on import.
>>> import my_module >>> command = input('foo or bar, Choose one. ') foo or bar, Choose one. bar >>> my_module.foobar[command]() barAnother way that i think is cleaner as avoid the the somewhat strange call
[something]()
and do error checking with get().# my_module1.py def spam(): return 'spam' def eggs(): return 'eggs' def switch_case(user_choice): return { 'foo': spam(), 'bar': eggs(), }.get(user_choice, f'<{user_choice}> Not in Record')
>>> import my_module1 >>> command = input('foo or bar, Choose one. ') foo or bar, Choose one. bar >>> my_module1.switch_case(command) 'eggs' >>> command = input('foo or bar, Choose one. ') foo or bar, Choose one. car >>> my_module1.switch_case(command) '<car> Not in Record'