Python compile Function with Examples

The Python compile function accepts source code as its input and produces a code object that can subsequently be run using the exec function.

Python compile Function Syntax

It has the following syntax:

Example

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.
  • eval - if the source is a single expression.
  • exec - if the source is block of statements.
  • single - if the source is single statement.
  • Return

It returns a Python code object.

Different Examples of Python compile Function

Here are several examples of the compile function that are presented below:

Python compile Function Example 1

This example demonstrates how to convert a string source into a code object through compilation.

Example

# 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:

Output

<class 'code'>

sum = 15

Python compile Function Example 2

This example illustrates how to read code from a file and subsequently compile it.

Assume we possess a file named mycode.py that contains the subsequent content.

Example

x = 10

y = 20

print('Multiplication = ', x * y)

We have the ability to read the contents of this file as a string, compile it into a code object, and then execute that code.

Example

# 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:

Output

Multiplication =200

Input Required

This code uses input(). Please provide values below: