"অন্তর্মুখ" বলতে কী বোঝায় এবং এটি কীভাবে গবজেক্ট ইন্ট্রোস্পেকশনের সাথে সম্পর্কিত?


উত্তর:


11

ইন্ট্রোস্পেকশন হল এটি অনুসন্ধানের একটি উপায় যা কোনও বস্তু কী এবং এটি রানটাইমের সময় কী রয়েছে। কিছু ভাষায় এটি অন্যের চেয়ে বেশি প্রয়োজনীয়। পাইথন যা গতিশীলভাবে টাইপ করা হয় (অর্থাত্ কোনও বস্তু রানটাইমের সময় বৈশিষ্ট্য এবং পদ্ধতিগুলি অর্জন করতে পারে) কোনও অবজেক্টের বর্তমান অবস্থা নির্ধারণের জন্য অন্তরীক্ষা ব্যবহার করে।

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

>>> class MyObject:
...   variable = False

>>> instance = MyObject()

>>> dir(instance)
['__doc__', '__module__', 'variable']

>>> instance.newvariable = "Kittens"

>>> dir(instance)
['__doc__', '__module__', 'newvariable', 'variable']

তাই ডায়নামিক সিস্টেমে আপনি পাইথনের মতো জিনিস ব্যবহার করতে পারেন hasattrএটি জানাতে যে কোনও জিনিস আপনি এটি করার চেষ্টা করছেন তা করতে সক্ষম হবে কিনা tell এমনকি আপনি রানটাইমে এটি ব্যবহার না করলেও ডিবাগিংয়ের জন্য আত্মপরিচয়ও অত্যন্ত কার্যকর।


এখন GObjects এবং GObject ভিত্তিক লাইব্রেরিতে। তারা সি এবং সিতে আপনি এই সমস্ত সুন্দর ফ্লাফি পরিচালিত কোড ননসনস পান না, আপনি পারফরম্যান্স পাবেন get এর অর্থ বিল্ট-ইন ইন্ট্রোস্পেকশন সেখানে নেই এবং এর অর্থ বাহ্যিক বাঁধাই বজায় রাখা আরও কঠিন।

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

গবজেক্ট ইন্ট্রোস্পেকশনটি মূলত এমন একটি স্ক্যানার সরবরাহ করে যা আপনি যে GObject এর সাথে কাজ করছেন তার বর্তমান উত্সের সন্ধান করতে পারে এবং আপনাকে এক্সএমএল বাইন্ডিং তথ্য সরবরাহ করে। এটি পরে বাইন্ডিংগুলি দ্বারা প্রক্রিয়া করা হয় এবং আপনি এমন একটি API দিয়ে শেষ করেন যা সর্বদা কাজ করে।

আমি অবশ্যই এখানে সবকিছু আবৃত করি নি তবে আমি আপনাকে দুটি বিষয় সম্পর্কে ধারণা দেওয়ার চেষ্টা করছি (আত্মবিজ্ঞাপন এবং কেন GObjects এর এটি প্রয়োজন)। আপনি যদি আরও জানতে চান তবে জিনোমের ওয়েবসাইটে প্রচুর পরিমাণ রয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.