কম্পিউটার

পাইথনে ব্যক্তিগত ভেরিয়েবল


প্রকৃত পদে (ব্যবহারিকভাবে), পাইথনে পাইথনে প্রাইভেট মেম্বার ভেরিয়েবল বলে কিছু নেই। যাইহোক, শুরুতে দুটি আন্ডারলাইন(__) যোগ করলে একটি ভেরিয়েবল বা একটি মেথড প্রাইভেট হয় যা বেশিরভাগ পাইথন কোড ব্যবহার করে।

আসুন একটি উদাহরণের মাধ্যমে এই ধারণাটি বুঝতে পারি -

privateVar1.py

class myClass:__privateVar =27; def __privMeth(self):print("আমি ক্লাস myClass এর ভিতরে আছি") def hello(self):print("Private Variable value:",myClass.__privateVar)foo =myClass()foo.hello()foo.__privateMeth 

উপরের প্রোগ্রামে, __privMeth একটি ব্যক্তিগত পদ্ধতি এবং __privateVar একটি ব্যক্তিগত পরিবর্তনশীল। এখন এর আউটপুট দেখি -

আউটপুট

ব্যক্তিগত পরিবর্তনশীল মান:27 ট্রেসব্যাক (সর্বশেষ কল শেষ):ফাইল "C:/Python/Python361/privateVar1.py", লাইন 12,  foo.__privateMethAttributeError:'myClass' অবজেক্টের কোনো অ্যাট্রিবিউট নেই '__privateMeth' 

উপরের আউটপুট থেকে, আমরা দেখতে পাচ্ছি যে "myClass" ক্লাসের বাইরে, আপনি প্রাইভেট পদ্ধতির পাশাপাশি প্রাইভেট ভেরিয়েবল অ্যাক্সেস করতে পারবেন না। যাইহোক, ক্লাসের ভিতরে (myClass) আমরা প্রাইভেট ভেরিয়েবল অ্যাক্সেস করতে পারি। hello() পদ্ধতিতে, __privateVar ভেরিয়েবল অ্যাক্সেস করা যেতে পারে (উপরে দেখানো হয়েছে:"প্রাইভেট ভেরিয়েবল মান:27")।

সুতরাং উপরের উদাহরণ থেকে, আমরা বুঝতে পারি যে ক্লাসের ভিতরের সমস্ত ভেরিয়েবল এবং পদ্ধতিগুলি পদ্ধতি দ্বারা সর্বজনীন। যখন আমরা ডেটা মেম্বারকে প্রাইভেট হিসাবে ঘোষণা করি তখন এর মানে হল তারা ক্লাসের পাশেই অ্যাক্সেসযোগ্য এবং ক্লাসের বাইরে অ্যাক্সেসযোগ্য। একটি পরিবর্তনশীল বা পদ্ধতি ব্যক্তিগত করার কৌশলকে ডেটা ম্যাংলিং বলা হয়। __স্প্যাম ফর্মের যেকোনো শনাক্তকারী (অন্তত দুটি অগ্রণী আন্ডারস্কোর, সর্বাধিক একটি ট্রেলিং আন্ডারস্কোর) পাঠ্যভাবে _classname__spam দিয়ে প্রতিস্থাপিত হয় , যেখানে শ্রেণীর নাম একটি অগ্রণী আন্ডারস্কোর(গুলি) ছিনতাই সহ বর্তমান শ্রেণীর নাম। এই ম্যাঙ্গলিং শনাক্তকারীর সিনট্যাকটিক অবস্থান বিবেচনা না করেই করা হয়, যতক্ষণ না এটি একটি শ্রেণীর সংজ্ঞার মধ্যে ঘটে।

ডাবল আন্ডারস্কোর নামগুলি একটি সাবক্লাস দ্বারা দুর্ঘটনাজনিত ওভাররাইডিং এড়াতে বোঝানো হয়৷


  1. পাইথনের কি ক্লাসে "প্রাইভেট" ভেরিয়েবল আছে?

  2. পাইথন ক্লাসে পাবলিক এবং প্রাইভেট ভেরিয়েবল কি?

  3. পাইথনে একটি স্ট্রিং হিসাবে একটি পরিবর্তনশীল নাম কিভাবে পেতে হয়?

  4. পাওয়ারশেলের ভেরিয়েবল