একটি বস্তুর গুণাবলী শ্রেণী সংজ্ঞার বাইরে দৃশ্যমান হতে পারে বা নাও হতে পারে। আপনাকে ডবল আন্ডারস্কোর প্রিফিক্স সহ বৈশিষ্ট্যগুলির নাম দিতে হবে এবং সেই বৈশিষ্ট্যগুলি বাইরের লোকেদের কাছে সরাসরি দৃশ্যমান হবে না৷
উদাহরণ
#!/usr/bin/python class JustCounter: __secretCount = 0 def count(self): self.__secretCount += 1 print self.__secretCount counter = JustCounter() counter.count() counter.count() print counter.__secretCount
আউটপুট
উপরের কোডটি কার্যকর করা হলে, এটি নিম্নলিখিত ফলাফল তৈরি করে -
1 2 Traceback (most recent call last): File "test.py", line 12, in <module> print counter.__secretCount AttributeError: JustCounter instance has no attribute '__secretCount'
পাইথন অভ্যন্তরীণভাবে ক্লাসের নাম অন্তর্ভুক্ত করার জন্য নাম পরিবর্তন করে সেই সদস্যদের রক্ষা করে। আপনি object._className__attrName এর মতো বৈশিষ্ট্যগুলি অ্যাক্সেস করতে পারেন। আপনি যদি আপনার শেষ লাইনটি নিম্নলিখিত হিসাবে প্রতিস্থাপন করেন, তাহলে এটি আপনার জন্য কাজ করে -
......................... print counter._JustCounter__secretCount
উপরের কোডটি কার্যকর করা হলে, এটি নিম্নলিখিত ফলাফল তৈরি করে -
1 2 2