Last Updated : 11 Jul, 2025
Python is a high-level, general-purpose, and very popular programming language. In this article, we will learn about the Python compile() function.
Python compile() Function SyntaxPython compile() function takes source code as input and returns a code object that is ready to be executed and which can later be executed by the exec() function.
Python compile() function Example Converting String to Python Code ObjectSyntax compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
Parameters:
- Source - It can be a normal string, a byte string, or an AST object
- Filename -This is the file from which the code was read. If it wasn't read from a file, you can give a name yourself.
- Mode - Mode can be exec, eval or single.
- a. eval - If the source is a single expression.
- b. exec - It can take a block of a code that has Python statements, class and functions and so on.
- c. single - It is used if consists of a single interactive statement
- Flags (optional) and dont_inherit (optional) - Default value=0. It takes care that which future statements affect the compilation of the source.
- Optimize (optional) - It tells optimization level of compiler. Default value -1.
Example 1: Here filename is mulstring and exec mode allows the use of exec() method and the compile method converts the string to a Python code object.
Python3
srcCode = 'x = 10\ny = 20\nmul = x * y\nprint("mul =", mul)'
execCode = compile(srcCode, 'mulstring', 'exec')
exec(execCode)
Output:
mul = 200
Example 2: In the code we are using compile()
to compile a single expression 'x'
and then execute it using exec()
.
x = 50
a = compile('x', 'test', 'single')
print(type(a))
exec(a)
Output:
<class 'code'> 50Python Compile function from File
In this example, we will take main.py file with some string display methods, and then we read the file content and compile it to code the object and execute it.
Python3
String = "Welcome to Geeksforgeeks"
print(String)
Here we will read the file content as a string and then compile it to a code object.
Python3
f = open('main.py', 'r')
temp = f.read()
f.close()
code = compile(temp, 'main.py', 'exec')
exec(code)
Output:
Welcome to GeeksforgeeksCompile() with eval()
Here eval is used when the source is a single expression.
Python3
x = 50
# Note eval is used for statement
a = compile('x == 50', '', 'eval')
print(eval(a))
Output:
TrueApplications
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4