English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل الأساسيات في بايثون

تحكم في العملية بايثون

معلمات الوظائف في Python

أنواع البيانات في Python

عمليات ملف بايثون

أشياء وصفات بايثون

التاريخ والوقت في بايثون

معرفة متقدمة في بايثون

كتيب مرجع بايثون

استخدام compile() في بايثون وأمثلة

وظائف داخلي بايثون

يستعيد方法是 compile() من الكود المصدر كائن الكود البايثون (الخط الأصلي، الخط البايثون أو كائن AST).

جملة compile() هي:

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

اگر كد بايثرن به صورت رشته يا كائن AST باشد و بخواهید آن را به كد كائن تبدیل كنید، می‌توانید از روش compile() استفاده كنید.

بعداً می‌توان ازexec() و eval()كلاس‌هايي كه روش compile() كد كائن بازگشتي را فراخواني مي‌كنند، كاراكترهايي كه كد بايثرن ساخته شده را اجرا مي‌كنند.

پارامترهای compile()

  • source - رشته عادي، رشته بيتي یا كائن AST

  • filename - فايلی كه كد از آن خوانده می‌شود. اگر از فايل خوانده نشود، می‌توان نام خود را تعیین كرد

  • mode - exec یا eval یا single.

    • eval - فقط یک عبارت را می‌پذیرد.

    • exec - می‌تواند كد بلوكی را با كلمات معنايي، كلاس‌ها و كاراكترهای بايثرن و غيره استفاده كند.

    • single - اگر شامل يك دستور تعاملی باشد

  • flags (اختياری) و dont_inherit (اختياری) - تعیین كدام دستورات بر روی كد منبع تأثیر می‌گذارند. مقدار پیش‌فرض: 0

  • optimize (اختياری) - سطح بهینه‌سازی كامپايلر. مقدار پیش‌فرض -1.

برگشت از compile()

روش compile() يك كد كائن بايثرن را برمی‌گرداند.

مثال: چگونه compile() كار می‌كند؟

codeInString = 'a = 5\nb=6\nsum=a+b\nprint("sum =",sum)'
codeObejct = compile(codeInString, 'sumstring', 'exec')
exec(codeObejct)

وقتی برنامه را اجرا می‌كنیم، خروجی به صورت زیر خواهد بود:

sum = 11

در اینجا،منبع (source()) به شكل رشته عادي استفاده می‌شود. آننام فايلهستsumstring. و به طور كلي، حالت exec به زودی اجازه استفاده از روش exec() را می‌دهد.

كيفية تبديل رشته به كد كائن بايثرن استفاده از روش compile(). سپس از روش exec() برای اجرای كد كائن استفاده می‌كنیم.

وظائف داخلي بايثون