exec()

exec(object, global,local ) execute valid python code

object: input object of string or code object
global: (optional ) global dictionary object
local: (optional ) local dictionary object

Using string object

my_str="x='plus2net'\nprint(x)"
exec(my_str)
Output
plus2net

Using code object

We create a code object by using compile()
cb=compile('print("Hello")', '', 'single')
exec(cb)
Output
Hello

Using restrictions

We can allow some functions in global scope only to execute by using global option. Let us import our math module and find the sum of a iterable_object This will generate error as we have used one empty dictionary ( not allowing any method ) .
import math
str="print(math.fsum([1,2,3,4,5]))"
exec(str,{})
This will work as we have allowed math.fsum to execute. Output is 15.0
import math
str="print(fs([1,2,3,4,5]))"
exec(str,{"fs":math.fsum}) # 15.0 

builtin functions

exec() has full access to all builtin functions of Python. This code will not generate any error though we have supplied an empty dictionary ({}) to globals. Output is 15
str="print(sum([1,2,3,4,5]))"
exec(str,{})  # 15 

All Built in Functions in Python dir() eval() compile()


plus2net.com



Post your comments , suggestion , error , requirements etc here




We use cookies to improve your browsing experience. . Learn more
HTML MySQL PHP JavaScript ASP Photoshop Articles FORUM . Contact us
©2000-2020 plus2net.com All rights reserved worldwide Privacy Policy Disclaimer