I have a question here which is based around user input to scripts and passing this user-input to functions.
I have a script, within which I have defined a function.
Use a dictionary, mapping strings to objects:
tbl1, tbl2 = [1 ,2 ,3], [4 ,5 ,6]
args = {'tbl1': tbl1 ,"tbl2" :tbl2}
# show tables ......
inp = input("Choose table")
def foo(var):
print(var)
foo(args[inp])
You will want to do error checking to make sure the user actually enters something valid.
I think you can take advantage of python's global() or locals() feature.
here's an example:
from random import choice as rc
def your_function(variable):
if variable in local_keys:
print(variable, " = ", local_variables[variable])
else:
print("Your input is not a defined variable")
return
#randomly populate the variables
item1 = rc(range(20))
item2 = rc(range(20))
item3 = rc(range(20))
item4 = rc(range(20))
item5 = rc(range(20))
item5 = rc(range(20))
user_variable = input("Input the variable name: ")
local_variables = locals() # you may have to use globals instead
local_keys = list(local_variables.keys())
your_function(user_variable)
with raw_input the input is just a string
table2 = range(3)
variable_name = raw_input('Enter Variable Name: ')
def function(list_object):
print list_object
function(globals()[variable_name])
with input() the input data given by the user is evaluated, be sure that the all the possible input lists are declared before asking for user input, other wise you end up getting an NameError
table2 = range(3)
variable_name = input('Enter Variable Name: ')
def function(list_object):
print list_object
function(variable_name)
globals() function returns a dictionary of all the objects defined in the module. you can get the respective object by passing the variable name as a key.