কম্পিউটার

পাইথন কোড অবজেক্ট


কোড অবজেক্ট হল CPython বাস্তবায়নের একটি নিম্ন-স্তরের বিশদ। প্রতিটি একটি এক্সিকিউটেবল কোডের একটি অংশ উপস্থাপন করে যা এখনও একটি ফাংশনে আবদ্ধ হয়নি। যদিও কোড অবজেক্টগুলি এক্সিকিউটেবল কোডের কিছু অংশকে প্রতিনিধিত্ব করে, তারা নিজেরাই সরাসরি কলযোগ্য নয়। একটি কোড অবজেক্ট এক্সিকিউট করতে, আপনাকে অবশ্যই exec কীওয়ার্ড ব্যবহার করতে হবে।

নীচের উদাহরণে আমরা দেখি যে কোডের একটি প্রদত্ত অংশের জন্য কীভাবে কোড অবজেক্ট তৈরি করা হয় এবং হ্যাট কোড অবজেক্টের সাথে যুক্ত বিভিন্ন বৈশিষ্ট্যগুলি কী কী।

উদাহরণ

code_str = """
print("Hello Code Objects")
"""
# Create the code object
code_obj = compile(code_str, '<string>', 'exec')
# get the code object
print(code_obj)
#Attributes of code object
print(dir(code_obj))
# The filename
print(code_obj.co_filename)
# The first chunk of raw bytecode
print(code_obj.co_code)
#The variable Names
print(code_obj.co_varnames)

আউটপুট

উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -

<code object <module> at 0x000001D80557EF50, file "<string>", line 2>
['__class__', '__delattr__', '__dir__', '__doc__', ……., '__subclasshook__', 'co_argcount', 'co_cellvars', 'co_code', 'co_consts', 'co_filename', 'co_firstlineno', …..,posonlyargcount', 'co_stacksize', 'co_varnames', 'replace']
<string>
b'e\x00d\x00\x83\x01\x01\x00d\x01S\x00'
()

  1. পাইথনে ফাইল অবজেক্ট?

  2. পাইথন ক্লাস কিভাবে বস্তুর উত্তরাধিকারী হয়?

  3. পাইথনে একটি TimeTuple কি?

  4. পাইথন অবজেক্ট থেকে সোর্স কোড কিভাবে পুনরুদ্ধার করবেন?