কম্পিউটার

পাইথনে ইন্টারপ্রেটার বেস ক্লাস


পাইথনের ইন্টারেক্টিভ মোড REPL এর নীতিতে কাজ করে (পড়ুন - মূল্যায়ন করুন - মুদ্রণ করুন - লুপ)। পাইথনের স্ট্যান্ডার্ড লাইব্রেরিতে কোড মডিউল পাইথন স্ক্রিপ্টের মধ্যে থেকে REPL পরিবেশ সেট আপ করার জন্য ক্লাস এবং সুবিধার ফাংশন প্রদান করে।

কোড মডিউলে নিম্নলিখিত দুটি শ্রেণী সংজ্ঞায়িত করা হয়েছে:

ইন্টারেক্টিভ ইন্টারপ্রেটার: এই ক্লাসটি পার্সিং এবং ইন্টারপ্রেটার স্টেট (ব্যবহারকারীর নামস্থান)

নিয়ে কাজ করে

ইন্টারেক্টিভ কনসোল: ইন্টারেক্টিভ পাইথন ইন্টারপ্রেটারের আচরণ ঘনিষ্ঠভাবে অনুকরণ করুন।

মডিউলে দুটি সুবিধার ফাংশন হল:

মিথস্ক্রিয়া(): রিড-ইভাল-প্রিন্ট লুপ চালানোর জন্য সুবিধার ফাংশন।

compile_command(): এই ফাংশনটি সেই প্রোগ্রামগুলির জন্য দরকারী যেগুলি পাইথনের ইন্টারপ্রেটার প্রধান লুপ (REPL) অনুকরণ করতে চায়।

ইন্টারেক্টিভ ইন্টারপ্রেটার পদ্ধতি

রানসোর্স(): দোভাষীতে কিছু উৎস সংকলন করুন এবং চালান।

রানকোড(): একটি কোড অবজেক্ট চালান

ইন্টারেক্টিভ কনসোল পদ্ধতি:

যেহেতু InteractiveConsole ক্লাসটি InteractiveInterpreter-এর একটি সাবক্লাস, উপরের পদ্ধতিগুলি স্বয়ংক্রিয়ভাবে উপলব্ধ। উপরন্তু নিম্নলিখিত পদ্ধতি সংজ্ঞায়িত করা হয়.

মিথস্ক্রিয়া(): ইন্টারেক্টিভ পাইথন কনসোল ঘনিষ্ঠভাবে অনুকরণ করুন।

ধাক্কা(): দোভাষীর কাছে উৎস পাঠের একটি লাইন চাপুন।

রিসেটবাফার(): ইনপুট বাফার থেকে কোনো আন-হ্যান্ডেলড সোর্স টেক্সট সরান।

raw_input(prompt="")

একটি প্রম্পট লিখুন এবং sys.stdin

থেকে ডিফল্টরূপে একটি লাইন পড়ুন

উদাহরণ

import code
x = 10
y = 20
def add(x,y):
   return x+y
print (add(x,y))
code.interact(local=locals())
print (x,y)
print (add(x,y))

উপরের কোডে, দুটি ভ্যাইবল সংজ্ঞায়িত করা হয়েছে এবং একটি ফাংশনে পাস করা হয়েছে। আমরা তাকে ইন্টারেক্টিভ কনসোল আহ্বান করি। আর্গুমেন্ট local=locals() দোভাষী লুপের মধ্যে স্থানীয় নামস্থানকে ডিফল্ট হিসাবে ব্যবহার করার অনুমতি দেয়।

আপনি যদি ভেরিয়েবলে বিভিন্ন মান নির্ধারণ করেন এবং ctrl+D টিপে কনসোল থেকে প্রস্থান করেন, সেই মানগুলি এখন ফাংশনে প্রেরণ করা হয়

আউটপুট

addition= 30
Python 3.6.6 |Anaconda custom (64-bit)| (default, Oct 9 2018, 12:34:16)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> x=100
>>> y=200
>>>

now exiting InteractiveConsole...
100 200
addition = 300

  1. পাইথন গ্লোবাল ইন্টারপ্রেটার লক (GIL) কি?

  2. পাইথনে একটি মেটাক্লাস কি?

  3. পাইথনে বেস ওভারলোডিং পদ্ধতি কি কি?

  4. পাইথনে ক্লাস কিভাবে সংজ্ঞায়িত করবেন?