Python compile() Function

The python compile() function takes source code as input and returns a code object which can later be executed by exec() function.

Python compile() Function Syntax

It has the following syntax:

compile(source, filename, mode, flag, dont_inherit, optimize)  

Parameters

  • source – normal string, a byte string, or an AST (Abstract Syntax Trees) object.
  • filename – File from which the code is read.
  • mode – mode can be either exec or eval or single.
    • eval – if the source is a single expression.
    • exec – if the source is block of statements.
    • single – if the source is single statement.
  • flags and dont_inherit – Default Value= 0. Both are optional parameters. It monitors that which future statements affect the compilation of the source.
  • optimize (optional) – Default value -1. It defines the optimization level of the compiler.

Return

It returns a Python code object.

Different Examples of Python compile() Function

Let’s see some examples of compile() function which are given below:

Python compile() Function Example 1

This example shows to compile a string source to the code object.

# compile string source to code  

code_str = 'x=5\ny=10\nprint("sum =",x+y)'  

code = compile(code_str, 'sum.py', 'exec')  

print(type(code))  

exec(code)  

exec(x)

Output:

<class 'code'>
sum = 15

Python compile() Function Example 2

This example shows to read a code from the file and compile.

Let’s say we have mycode.py file with following content.

x = 10  

y = 20  

print('Multiplication = ', x * y)

We can read this file content as a string ,compile it to code object and execute it.

# reading code from a file  

f = open('my_code.py', 'r')  

code_str = f.read()  

f.close()  

code = compile(code_str, 'my_code.py', 'exec')  

exec(code)

Output:

Multiplication =200

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *