Home > Mobile >  How can I "add" a line of code trough input?
How can I "add" a line of code trough input?

Time:09-14

How can I "add" a line of code trough input, more specifically, how can I "toggle" a def? So for example:

def func():
    print("boo")

Is there an input() function or something, to add

func()

instead of using if.

If you want me to specify, I mean: can it be done by something like

y = input()
if y == "abc":
    # add line to code

CodePudding user response:

What you can do is make a list of instructions and execute them with exec

eg:

myInstructions = ["a=1", "b=2", "print(a b)"]
for i in myInstructions:
    exec(i)

This will print 3

Now you can use this approach manually make the instructions to execute:

myInstructions = []
# introduce instructions. "end" to finish
while True:
    instruction = input("introduce an instruction:")
    if instruction == "end":
        break
    myInstructions.append(instruction)

for i in myInstructions:
    exec(i)

However, this is really not recommended, since you are allowing the user to directly introduce code to be executed.

This is a source of problems that you don't want to deal with, except just for learning purposes.

Take a look at this post to understand why you should avoid eval and exec

Use under your own risk

  • Related