search
HomeBackend DevelopmentPython TutorialPython built-in function——compile

Python built-in function——compile

compilecompile(source, filename, mode[, flags[, dont_inherit,[optimize]]])
1. This function is used Compile the source code of a string, and the result can generate bytecode or AST (Abstract Syntax Tree).
Bytecode can be executed using the function exec(), and AST can be compiled using eval().
2. The parameter source is the source code of a string, or an array of AST objects.
3. The parameter filename is the file object for reading strings.
If the source code is not read from the file for compilation, then some strings used to identify these codes can be placed here.
4. The parameter mode is used to indicate the type of source code represented;
If it is an exec type, it means that this is a sequence statement that can be run;
If it is an eval type, it means that this is a single The expression statement can be used to calculate the corresponding value;
If it is a single type, it means that this is a single statement, which is executed in interactive mode.
In this case, if it is an expression, generally will output the result instead of printing it as None.
5. The optional parameters flags and dont_inherit are used to control the flags when compiling source code.
You can check the PEP236 document to learn about these parameters and related compilation instructions.
If both use default parameters (that is, both are zero values),
When calling this function for compilation, the compilation features specified in the code will be used to treat it;
If the flags parameter is set to value, and dont_inherit is not set (that is, it is zero value),
Then when compiling the code, not only the compilation features of the source code will work, but also the features specified by flags will work, which is equivalent to the union of the two;
If the parameter dont_inherit is set to have a value (that is, a non-zero value).
When compiling the statement, only the compilation feature values ​​specified by the parameter flags take effect, that is, the features specified in the source code are not used.
Compilation features are set to parameters in bitmap format, which can be viewed in __future__.
6. The optional parameter optimize is used to indicate the level of optimization used by the compiler;
The default value is -1, which means that the optimization level obtained in the command line parameter -O shall prevail;
If set The value is 0 (that is, no optimization is required, __debug__ is set to true), which means there is no optimization;
If the value is set to 1, the assert statement is deleted, and __debug__ is set to false;
If the value is set to 2, except In addition to the functions set to 1, the documentation in the code will also be deleted to achieve the best optimization results.
7. When this function compiles the code, it will return SyntaxError if there is a syntax error;
If the code contains some null bytes, it will return TypeError.
Notes:
1. When using single or eval type compilation,
If there are multiple lines of code, there must be at least one newline character \ after each line of code, otherwise a compilation prompt will be prompted when the code module is compiled. The source code is incomplete error.
After Python 3.2 version, it is allowed to enter the newline character of Windows or Mac;
2. When using exec mode, there is no need to enter the newline character after each line; after this version, optimization parameters are added.

In [16]: str = "for i in range(10): print(i)"
In [17]: c = compile(str,'','exec') #编译为字节代码对象
In [18]: exec(c)
0
1
2
3
4
5
6
7
8
9
In [19]: str = "3*x + 4*y"
In [20]: c = compile(str,'','eval') #编译为表达式
In [23]: x,y = 3,4
In [24]: eval(c)
Out[24]: 25

The above is the content of Python’s built-in function-compile. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!


Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
What data types can be stored in a Python array?What data types can be stored in a Python array?Apr 27, 2025 am 12:11 AM

Pythonlistscanstoreanydatatype,arraymodulearraysstoreonetype,andNumPyarraysarefornumericalcomputations.1)Listsareversatilebutlessmemory-efficient.2)Arraymodulearraysarememory-efficientforhomogeneousdata.3)NumPyarraysareoptimizedforperformanceinscient

What happens if you try to store a value of the wrong data type in a Python array?What happens if you try to store a value of the wrong data type in a Python array?Apr 27, 2025 am 12:10 AM

WhenyouattempttostoreavalueofthewrongdatatypeinaPythonarray,you'llencounteraTypeError.Thisisduetothearraymodule'sstricttypeenforcement,whichrequiresallelementstobeofthesametypeasspecifiedbythetypecode.Forperformancereasons,arraysaremoreefficientthanl

Which is part of the Python standard library: lists or arrays?Which is part of the Python standard library: lists or arrays?Apr 27, 2025 am 12:03 AM

Pythonlistsarepartofthestandardlibrary,whilearraysarenot.Listsarebuilt-in,versatile,andusedforstoringcollections,whereasarraysareprovidedbythearraymoduleandlesscommonlyusedduetolimitedfunctionality.

What should you check if the script executes with the wrong Python version?What should you check if the script executes with the wrong Python version?Apr 27, 2025 am 12:01 AM

ThescriptisrunningwiththewrongPythonversionduetoincorrectdefaultinterpretersettings.Tofixthis:1)CheckthedefaultPythonversionusingpython--versionorpython3--version.2)Usevirtualenvironmentsbycreatingonewithpython3.9-mvenvmyenv,activatingit,andverifying

What are some common operations that can be performed on Python arrays?What are some common operations that can be performed on Python arrays?Apr 26, 2025 am 12:22 AM

Pythonarrayssupportvariousoperations:1)Slicingextractssubsets,2)Appending/Extendingaddselements,3)Insertingplaceselementsatspecificpositions,4)Removingdeleteselements,5)Sorting/Reversingchangesorder,and6)Listcomprehensionscreatenewlistsbasedonexistin

In what types of applications are NumPy arrays commonly used?In what types of applications are NumPy arrays commonly used?Apr 26, 2025 am 12:13 AM

NumPyarraysareessentialforapplicationsrequiringefficientnumericalcomputationsanddatamanipulation.Theyarecrucialindatascience,machinelearning,physics,engineering,andfinanceduetotheirabilitytohandlelarge-scaledataefficiently.Forexample,infinancialanaly

When would you choose to use an array over a list in Python?When would you choose to use an array over a list in Python?Apr 26, 2025 am 12:12 AM

Useanarray.arrayoveralistinPythonwhendealingwithhomogeneousdata,performance-criticalcode,orinterfacingwithCcode.1)HomogeneousData:Arrayssavememorywithtypedelements.2)Performance-CriticalCode:Arraysofferbetterperformancefornumericaloperations.3)Interf

Are all list operations supported by arrays, and vice versa? Why or why not?Are all list operations supported by arrays, and vice versa? Why or why not?Apr 26, 2025 am 12:05 AM

No,notalllistoperationsaresupportedbyarrays,andviceversa.1)Arraysdonotsupportdynamicoperationslikeappendorinsertwithoutresizing,whichimpactsperformance.2)Listsdonotguaranteeconstanttimecomplexityfordirectaccesslikearraysdo.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function