English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يستعيد方法是 compile() من الكود المصدر كائن الكود البايثون (الخط الأصلي، الخط البايثون أو كائن AST).
جملة compile() هي:
compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
اگر كد بايثرن به صورت رشته يا كائن AST باشد و بخواهید آن را به كد كائن تبدیل كنید، میتوانید از روش compile() استفاده كنید.
بعداً میتوان ازexec() و eval()كلاسهايي كه روش compile() كد كائن بازگشتي را فراخواني ميكنند، كاراكترهايي كه كد بايثرن ساخته شده را اجرا ميكنند.
source - رشته عادي، رشته بيتي یا كائن AST
filename - فايلی كه كد از آن خوانده میشود. اگر از فايل خوانده نشود، میتوان نام خود را تعیین كرد
mode - exec یا eval یا single.
eval - فقط یک عبارت را میپذیرد.
exec - میتواند كد بلوكی را با كلمات معنايي، كلاسها و كاراكترهای بايثرن و غيره استفاده كند.
single - اگر شامل يك دستور تعاملی باشد
flags (اختياری) و dont_inherit (اختياری) - تعیین كدام دستورات بر روی كد منبع تأثیر میگذارند. مقدار پیشفرض: 0
optimize (اختياری) - سطح بهینهسازی كامپايلر. مقدار پیشفرض -1.
روش 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() برای اجرای كد كائن استفاده میكنیم.