βΉοΈ Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | FAIL | download_stamp > now() - 6 MONTH | 8.5 months ago |
| History drop | FAIL | isNull(history_drop_reason) | tooold |
| Spam/ban | FAIL | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=720 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://proghunter.ru/articles/compiling-code-dynamically-using-the-compile-function-in-python |
| Last Crawled | 2025-07-25 09:46:16 (8 months ago) |
| First Indexed | 2023-05-15 11:20:49 (2 years ago) |
| HTTP Status Code | 200 |
| Meta Title | ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ compile() Π² Python |
| Meta Description | Π ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ compile(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄. ΠΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ compile(), Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. |
| Meta Canonical | null |
| Boilerpipe Text | Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ compile() ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ compile() ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ compile() , ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄. ΠΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ compile() , Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ compile() Π€ΡΠ½ΠΊΡΠΈΡ compile() ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ: compiled_code = compile ( source , filename , mode ) ΠΠ΄Π΅: source : ΡΡΡΠΎΠΊΠ° ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ. filename : ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ Ρ ΠΊΠΎΠ΄ΠΎΠΌ (ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅). mode : ΡΠ΅ΠΆΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΡΠ΅Ρ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ: "exec", "eval" ΠΈΠ»ΠΈ "single". ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ compile() ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° code = """
def greet(name):
print(f"Hello, {name}!")
greet("Alice")
""" compiled_code = compile ( code , "<string>" , "exec" ) exec ( compiled_code ) Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ greet() ΠΈ Π²ΡΠ·ΠΎΠ² ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π€ΡΠ½ΠΊΡΠΈΡ compile() ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΊΠΎΠ΄ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° <string> ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ exec . ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ exec() . ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ expression = "2 + 3 * 4" compiled_code = compile ( expression , "<string>" , "eval" ) result = eval ( compiled_code ) print ( result ) Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΈ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ 2 + 3 * 4 . Π€ΡΠ½ΠΊΡΠΈΡ compile() ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° <string> ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ eval . ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ eval() . ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ instruction = "print('Hello, World!')" compiled_code = compile ( instruction , "<string>" , "single" ) exec ( compiled_code ) Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΎΠ΄Π½Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ - ΠΏΠ΅ΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Hello, World! . Π€ΡΠ½ΠΊΡΠΈΡ compile() ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° <string> ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ single . ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ exec() . ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΊΠΎΠ΄Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π½Π΅ΡΠ½ΠΈΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
x = 5 y = 10 code = f"""
result = { x } + { y } print(result)
""" compiled_code = compile ( code , "<string>" , "exec" ) exec ( compiled_code ) Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠ΄, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ x ΠΈ y . ΠΡ Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π² ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΈ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π²ΡΡΠΈΡΠ»Π΅Π½ ΠΈ ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΠ°Π½. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ code = """
print("Hello, World!"
""" try : compiled_code = compile ( code , "<string>" , "exec" ) except SyntaxError as e : print ( f"Compilation Error: { e } " ) Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅Π·Π°ΠΊΡΡΡΠ°Ρ ΡΠΊΠΎΠ±ΠΊΠ° Π² ΡΡΡΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π°, ΡΡΠΎ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ Π²ΡΠ·ΠΎΠ² compile() Π² Π±Π»ΠΎΠΊ try-except Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π€ΡΠ½ΠΊΡΠΈΡ compile() Π² Python ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΠΈΡΠ»ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ compile() ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½. |
| Markdown | [PROGHUNTER.ru ΡΡΠΎΡ ΠΊΠΎΠ΄... \<ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ\>](https://proghunter.ru/)

[Python](https://proghunter.ru/category/python "ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΡ: Python")
## ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ compile() Π² Python
Π’Π΅Π³ΠΈ Π½Π΅ Π·Π°Π΄Π°Π½Ρ
15 ΠΌΠ°Ρ 2023
Razilator
π₯0
π0
π0
ΠΡΠ΅Π½ΠΊΠΈ ΡΡΠ°ΡΡΠΈ
ΠΡΠ΅ Π½ΠΈΠΊΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½ΠΈΠ» ΡΡΠ°ΡΡΡ
1. [Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ compile()](https://proghunter.ru/articles/compiling-code-dynamically-using-the-compile-function-in-python#%D1%81%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%81-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8-compile)
2. [ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ compile()](https://proghunter.ru/articles/compiling-code-dynamically-using-the-compile-function-in-python#%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8-compile)
3. [ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅](https://proghunter.ru/articles/compiling-code-dynamically-using-the-compile-function-in-python#%D0%B7%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5)
Π ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ **Python** ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ `compile()`, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄. ΠΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ `compile()`, Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
## Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ compile()
Π€ΡΠ½ΠΊΡΠΈΡ `compile()` ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
```
compiled_code = compile(source, filename, mode)
```
**ΠΠ΄Π΅:**
- `source`: ΡΡΡΠΎΠΊΠ° ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ.
- `filename`: ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ Ρ ΠΊΠΎΠ΄ΠΎΠΌ (ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅).
- `mode`: ΡΠ΅ΠΆΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΡΠ΅Ρ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ: "exec", "eval" ΠΈΠ»ΠΈ "single".
## ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ compile()
**ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°**
main.py
```
code = """
def greet(name):
print(f"Hello, {name}!")
greet("Alice")
"""
compiled_code = compile(code, "<string>", "exec")
exec(compiled_code)
```
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ `greet()` ΠΈ Π²ΡΠ·ΠΎΠ² ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π€ΡΠ½ΠΊΡΠΈΡ `compile()` ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΊΠΎΠ΄ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° `<string>` ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ `exec`. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ `exec()`.
**ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ**
main.py
```
expression = "2 + 3 * 4"
compiled_code = compile(expression, "<string>", "eval")
result = eval(compiled_code)
print(result) # 14
```
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΈ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ `2 + 3 * 4`. Π€ΡΠ½ΠΊΡΠΈΡ `compile()` ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° `<string>` ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ `eval`. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ `eval()`.
**ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ**
main.py
```
instruction = "print('Hello, World!')"
compiled_code = compile(instruction, "<string>", "single")
exec(compiled_code)
```
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΎΠ΄Π½Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ - ΠΏΠ΅ΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ `Hello, World!`. Π€ΡΠ½ΠΊΡΠΈΡ `compile()` ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° `<string>` ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ `single`. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ `exec()`.
**ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΊΠΎΠ΄Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π½Π΅ΡΠ½ΠΈΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
**
main.py
```
x = 5
y = 10
code = f"""
result = {x} + {y}
print(result)
"""
compiled_code = compile(code, "<string>", "exec")
exec(compiled_code)
```
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠ΄, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ `x` ΠΈ `y`. ΠΡ Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π² ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΈ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π²ΡΡΠΈΡΠ»Π΅Π½ ΠΈ ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΠ°Π½.
**ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ**
main.py
```
code = """
print("Hello, World!"
"""
try:
compiled_code = compile(code, "<string>", "exec")
except SyntaxError as e:
print(f"Compilation Error: {e}")
```
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅Π·Π°ΠΊΡΡΡΠ°Ρ ΡΠΊΠΎΠ±ΠΊΠ° Π² ΡΡΡΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π°, ΡΡΠΎ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ Π²ΡΠ·ΠΎΠ² `compile()` Π² Π±Π»ΠΎΠΊ `try-except` Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
## ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π€ΡΠ½ΠΊΡΠΈΡ `compile()` Π² **Python** ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΠΈΡΠ»ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ `compile()` ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½.
;
ΠΠ΅Π½Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ
Π ΡΠ°ΠΉΡΠ΅
ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ Π² ΠΠ»ΠΎΠ³ Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΠ»Π°Π΄ΠΈΡΠ»Π°Π²Π° ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠΎΠ²ΠΈΡΠ°.
ΠΠ΅Π΄Π΅ΡΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π°Ρ, Π½ΠΎ ΡΠ²Π΅ΡΠ΅Π½Π½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π° ΡΠ°ΠΉΡΠ°.
Django Core: 0.3.4 / Next.js 1.0 / UPD: 05.06.2023
ΠΠΎΡ
ΠΎΠΆΠΈΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ
ΠΠΎΠ½ΡΠ°ΠΊΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
[ Π§Π°Ρ ΡΠ°ΠΉΡΠ° \|](https://t.me/+ZQ1l3H-CjlA4MDJi "Π§Π°Ρ ΡΠ°ΠΉΡΠ° Π² telegram")[ΠΠ°Π½Π°Π»: @ProgHub - Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°](https://t.me/notehunter "ΠΠ°Π½Π°Π» ΡΠ°ΠΉΡΠ° Π² telegram")
 [ΠΠΎΠ΄Π΄Π΅ΡΠΆΠ°ΡΡ Π°Π²ΡΠΎΡΠ° Π½Π° Boosty](https://boosty.to/razilator/donate) |
| Readable Markdown | null |
| Shard | 179 (laksa) |
| Root Hash | 18307797679744913379 |
| Unparsed URL | ru,proghunter!/articles/compiling-code-dynamically-using-the-compile-function-in-python s443 |