The compile()
method computes the Python code from a source object and returns it.
Example
codeInString = 'a = 8\nb=7\nsum=a+b\nprint("sum =",sum)'
codeObject = compile(codeInString, 'sumstring', 'exec')
exec(codeObject)
# Output: 15
compile() Syntax
The syntax of compile()
is:
compile(source, filename, mode)
compile() Parameters
The compile()
method takes in the following parameters:
source
- a normal string , a byte string, or an AST objectfilename
- file from which the code is to be readmode
-exec
(can take a code block with statements, class and functions ),eval
(accepts single expression) orsingle
(has a single interactive statement)
Note: There are other optional parameters such as flags
, dont_inherit
and optimize
for the compile()
method but normally, we don't use them.
compile() Return Value
The compile()
method returns
- a python object code
Example: Python compile()
codeInString = 'a = 5\nb=6\nmul=a*b\nprint("mul =",mul)'
codeObject = compile(codeInString, 'multiplyNumbers', 'exec')
exec(codeObject)
# Output: mul = 30
In the above example, the source
argument is the string variable codeInString
which has the python object code:
'a = 5\nb=6\nmul=a*b\nprint("mul =",mul)'
We have a compile method to compile the source:
compile(codeInString, 'sumstring', 'exec')
Where,
filename
issumstring
mode
isexec
- the variable passed is
codeInString
We have assigned the compile()
method in exec
mode to the codeObject
variable.
The exec()
method executes the codeObject
variable and returns the resulting python object.
Also Read: