cari
Rumahpembangunan bahagian belakangTutorial PythonPengenalan kepada fungsi Python: fungsi dan contoh penggunaan fungsi kompil

Pengenalan kepada fungsi Python: fungsi dan contoh penggunaan fungsi kompil

Nov 04, 2023 am 09:32 AM
Fungsifungsi pythonContoh penggunaanfungsi menyusun

Pengenalan kepada fungsi Python: fungsi dan contoh penggunaan fungsi kompil

Pengenalan kepada fungsi Python: fungsi dan contoh penggunaan fungsi kompilasi

Dalam pengaturcaraan Python, fungsi compile() ialah fungsi terbina dalam, dan fungsinya adalah untuk menyusun kod Python dalam bentuk rentetan menjadi kod bait atau objek AST. Selepas penyusunan, kod boleh dijalankan dengan melaksanakan bytecode atau objek AST. Dalam artikel ini, kami akan memberikan pengenalan terperinci kepada fungsi dan penggunaan fungsi penyusun dan menyediakan beberapa contoh kod praktikal.

Sintaks dan parameter fungsi kompilasi

Sintaks fungsi kompilasi adalah seperti berikut:

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

Antaranya, maksud parameter adalah seperti berikut:

  • sumber: Kod Python dalam bentuk rentetan; nama fail: nama fail di mana kod itu terletak. Jika kod tidak datang daripada fail, anda boleh menggunakan mana-mana pengecam yang boleh dikenal pasti, seperti "";
  • "exec": Jika kod ialah pernyataan Python atau sekumpulan pernyataan, mod ini digunakan
  • "eval": Jika kod ialah ungkapan Python, mod ini digunakan

      "single": Jika kod adalah input interaktif yang berasingan, gunakan mod ini.
    • bendera: Bendera digunakan untuk mengawal pengkompil. Parameter pilihan:
  • PyCF_SOURCE_IS_UTF8: Jika kod sumber menggunakan pengekodan UTF-8, gunakan bendera ini;
  • PyCF_IGNORE_COOKIE: Abaikan teg UTF-8 dalam kod sumber

      ASTCF_ONLY_Py: ) ) objek, bukan bytecode.
    • dont_inherit: Jika ditetapkan kepada Benar, tiada bendera diwarisi daripada skop induk.
    • optimumkan: Integer yang menetapkan tahap pengoptimuman semasa penyusunan. Nilai lalai -1 melumpuhkan pengoptimuman.
  • Nilai pulangan fungsi kompil
  • Fungsi kompilasi mengembalikan objek kod, yang boleh diproses selanjutnya melalui exec(), eval(), atau API lain yang disediakan oleh modul ast.
Apabila menggunakan fungsi kompilasi, objek kod yang dikembalikan olehnya biasanya digunakan untuk melaksanakan penterjemah Python untuk menjalankan kod.

Contoh penggunaan fungsi compile

Berikut adalah beberapa contoh penggunaan fungsi compile. Dalam contoh ini, kami akan menggunakan fungsi kompilasi untuk menyusun beberapa kod Python mudah dan melaksanakan kod melalui fungsi exec().

Contoh 1: Menggunakan mod exec

Contoh berikut menggunakan mod exec, yang bermaksud kod sumber ialah satu set pernyataan Python. Kami akan menggunakan pernyataan cetak untuk mengeluarkan sesuatu.

source_code = "print('Hello, world!')"

compiled_code = compile(source_code, "<string>", "exec")

exec(compiled_code)

Hasil keluaran kod ialah:

Hello, world!

Contoh 2: Menggunakan mod eval

Contoh berikut menggunakan mod eval, yang bermaksud kod sumber ialah ungkapan Python. Kami akan mentakrifkan ungkapan mudah dalam rentetan yang menambah dua nombor menggunakan pengendali penambahan. Kami kemudian akan menggunakan fungsi eval() untuk menilai ungkapan dan mencetak hasilnya.

source_code = "1 + 2"

compiled_code = compile(source_code, "<string>", "eval")

result = eval(compiled_code)

print(result)

Hasil keluaran kod ialah:

3

Contoh 3: Menggunakan mod AST

Contoh berikut menggunakan mod AST, yang bermaksud bahawa kod sumber akan disusun menjadi pokok sintaks abstrak. Kami akan mentakrifkan beberapa kod Python dalam rentetan yang menguji nilai pembolehubah menggunakan pernyataan bersyarat if/else dan mencetak hasilnya.

import ast

source_code = """
a = 5
if a > 0:
    print('a is positive')
else:
    print('a is non-positive')
"""

compiled_code = compile(source_code, "<string>", "exec", flags=ast.PyCF_ONLY_AST)

ast.dump(compiled_code)

exec(compiled_code)

Hasil keluaran kod ialah:

If(test=Compare(left=Name(id='a', ctx=Load()), ops=[GreaterThan()], comparators=[Num(n=0)]), body=[Expr(value=Call(func=Name(id='print', ctx=Load()), args=[Str(s='a is positive')], keywords=[]))], orelse=[Expr(value=Call(func=Name(id='print', ctx=Load()), args=[Str(s='a is non-positive')], keywords=[]))])
a is positive

Dalam contoh, kami menggunakan bendera PyCF_ONLY_AST dalam modul ast untuk menyusun kod ke dalam objek AST. Kami kemudian menggunakan fungsi ast.dump() untuk menukar objek AST ini kepada perwakilan rentetan dan mengeluarkan hasilnya. Fungsi

Kesimpulan

compile() ialah alat yang fleksibel dan berkuasa yang boleh membantu kami menukar kod Python daripada rentetan kepada objek kod boleh laku. Walaupun ia mempunyai pelbagai pilihan dan bendera, penggunaan biasa adalah untuk menyusun kod sumber ke dalam objek kod yang disusun dan menggunakan exec(), eval(), atau AST untuk melaksanakan kod tersebut. Jika anda ingin menulis kod Python yang lebih maju, fungsi kompilasi ialah alat yang mesti dikuasai.

Atas ialah kandungan terperinci Pengenalan kepada fungsi Python: fungsi dan contoh penggunaan fungsi kompil. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Python: Automasi, skrip, dan pengurusan tugasPython: Automasi, skrip, dan pengurusan tugasApr 16, 2025 am 12:14 AM

Python cemerlang dalam automasi, skrip, dan pengurusan tugas. 1) Automasi: Sandaran fail direalisasikan melalui perpustakaan standard seperti OS dan Shutil. 2) Penulisan Skrip: Gunakan Perpustakaan Psutil untuk memantau sumber sistem. 3) Pengurusan Tugas: Gunakan perpustakaan jadual untuk menjadualkan tugas. Kemudahan penggunaan Python dan sokongan perpustakaan yang kaya menjadikannya alat pilihan di kawasan ini.

Python dan Masa: Memanfaatkan masa belajar andaPython dan Masa: Memanfaatkan masa belajar andaApr 14, 2025 am 12:02 AM

Untuk memaksimumkan kecekapan pembelajaran Python dalam masa yang terhad, anda boleh menggunakan modul, masa, dan modul Python. 1. Modul DateTime digunakan untuk merakam dan merancang masa pembelajaran. 2. Modul Masa membantu menetapkan kajian dan masa rehat. 3. Modul Jadual secara automatik mengatur tugas pembelajaran mingguan.

Python: Permainan, GUI, dan banyak lagiPython: Permainan, GUI, dan banyak lagiApr 13, 2025 am 12:14 AM

Python cemerlang dalam permainan dan pembangunan GUI. 1) Pembangunan permainan menggunakan pygame, menyediakan lukisan, audio dan fungsi lain, yang sesuai untuk membuat permainan 2D. 2) Pembangunan GUI boleh memilih tkinter atau pyqt. TKInter adalah mudah dan mudah digunakan, PYQT mempunyai fungsi yang kaya dan sesuai untuk pembangunan profesional.

Python vs C: Aplikasi dan kes penggunaan dibandingkanPython vs C: Aplikasi dan kes penggunaan dibandingkanApr 12, 2025 am 12:01 AM

Python sesuai untuk sains data, pembangunan web dan tugas automasi, manakala C sesuai untuk pengaturcaraan sistem, pembangunan permainan dan sistem tertanam. Python terkenal dengan kesederhanaan dan ekosistem yang kuat, manakala C dikenali dengan keupayaan kawalan dan keupayaan kawalan yang mendasari.

Rancangan Python 2 jam: Pendekatan yang realistikRancangan Python 2 jam: Pendekatan yang realistikApr 11, 2025 am 12:04 AM

Anda boleh mempelajari konsep pengaturcaraan asas dan kemahiran Python dalam masa 2 jam. 1. Belajar Pembolehubah dan Jenis Data, 2.

Python: meneroka aplikasi utamanyaPython: meneroka aplikasi utamanyaApr 10, 2025 am 09:41 AM

Python digunakan secara meluas dalam bidang pembangunan web, sains data, pembelajaran mesin, automasi dan skrip. 1) Dalam pembangunan web, kerangka Django dan Flask memudahkan proses pembangunan. 2) Dalam bidang sains data dan pembelajaran mesin, numpy, panda, scikit-learn dan perpustakaan tensorflow memberikan sokongan yang kuat. 3) Dari segi automasi dan skrip, Python sesuai untuk tugas -tugas seperti ujian automatik dan pengurusan sistem.

Berapa banyak python yang boleh anda pelajari dalam 2 jam?Berapa banyak python yang boleh anda pelajari dalam 2 jam?Apr 09, 2025 pm 04:33 PM

Anda boleh mempelajari asas -asas Python dalam masa dua jam. 1. Belajar pembolehubah dan jenis data, 2. Struktur kawalan induk seperti jika pernyataan dan gelung, 3 memahami definisi dan penggunaan fungsi. Ini akan membantu anda mula menulis program python mudah.

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam Kaedah Projek dan Masalah Dikemukakan Dalam masa 10 Jam?Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam Kaedah Projek dan Masalah Dikemukakan Dalam masa 10 Jam?Apr 02, 2025 am 07:18 AM

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa