যদি 'স্পষ্টতই অন্তর্নিহিতের চেয়ে ভাল হয়' তবে পাইথনে সুস্পষ্ট অ্যাক্সেস সংশোধকগুলি কেন নেই: পাবলিক, সুরক্ষিত, ব্যক্তিগত ইত্যাদি?
আমি জানি যে ধারণাটি হ'ল প্রোগ্রামারটি একটি ইঙ্গিতের মাধ্যমে কী করা উচিত তা জানতে হবে - 'ব্রুট ফোর্স' ব্যবহার করার দরকার নেই। তবে আইএমও 'এনক্যাপসুলেশন' বা 'তথ্য গোপন করা' কেবল মানুষকে দূরে রাখতে নয়, এটি সংগঠন এবং কাঠামোর প্রশ্ন: আপনার বিকাশের স্তরগুলি শারীরিক সিস্টেমের মতোই স্ব-সংজ্ঞায়িত, স্পষ্টভাবে বিস্মৃত স্কোপ এবং সীমানা থাকা উচিত।
পাইথন, অন্যথায় নিখুঁত বলে মনে হচ্ছে এমন একটি ভাষা পাইথনে স্পষ্ট করে না দিয়ে কেন অ্যাক্সেস বিধিনিষেধ আরোপ করা হয়েছে তার একটি নিখুঁত ব্যাখ্যা দিয়ে দয়া করে এখানে কেউ আমাকে সহায়তা করতে পারেন?
সম্পাদনা: এখন পর্যন্ত আমি 3 টি প্রস্তাবিত উত্তর দেখেছি এবং আমি বুঝতে পেরেছি যে আমার প্রশ্নের 2 টি অংশ রয়েছে:
উদাহরণস্বরূপ কী কী শব্দ নেই
private def myFunc(): dostuff....
আইএমও পরিবর্তে কুরুচিপূর্ণ এবং আন্ডারস্কোর টাইপ করা শক্ত। তবে এটি গুরুত্বপূর্ণ বিষয় নয়।
অধিক গুরুত্বের সাথে:
কেন এই অ্যাক্সেস সংশোধকগুলি কেবল 'প্রস্তাবনা' বা ইঙ্গিতগুলি প্রয়োগ করা হয় না। পরে পরিবর্তন করা কি শক্ত হবে? 'সুরক্ষিত' কে 'জনসাধারণের' এ পরিবর্তন করা খুব সহজ - এবং আপনার যদি একটি সংশ্লেষিত উত্তরাধিকার শৃঙ্খলা তৈরি করে তোলে যা আপনার পক্ষে সমস্যা তৈরি করে, আপনার নকশা খুব ভাল - আপনার ভাষার নকশাটি এমন কোনও ভাষার বৈশিষ্ট্যের উপর নির্ভর করার পরিবর্তে পরিমার্জন করা উচিত যা এটি লিখতে সহজ করে তোলে দুর্বল কাঠামোযুক্ত কোড।
অ্যাক্সেস মডিফায়ারগুলি যখন প্রয়োগ করা হয়, তখন আপনার কোডটি স্বয়ংক্রিয়ভাবে বগি হয় - আপনি জানেন যে নির্দিষ্ট বিভাগগুলি সুযোগের বাইরে রয়েছে যাতে আপনার প্রয়োজনে এবং যখন প্রয়োজন হয় সেগুলি ব্যতীত আপনাকে সেগুলি মোকাবেলা করতে হবে না। এবং, যদি আপনার নকশাটি ভাল না হয় এবং আপনি নিজেকে নিয়মিত জিনিসগুলি বিভিন্ন স্কোপের মধ্যে এবং বাইরে নিয়ে যেতে দেখেন তবে ভাষা আপনাকে আপনার কাজটি পরিষ্কার করতে সহায়তা করতে পারে।
আমি পাইথনকে যতটা ভালোবাসি, আমি এই দ্বিতীয় পয়েন্টটিকে একটি গুরুতর ঘাটতি হিসাবে খুঁজে পাচ্ছি। এবং আমি এখনও এই জন্য একটি ভাল উত্তর দেখতে পারেন।
private def whatever
হ'ল class x: def whatever(self): pass
এটি একটি শর্টকাট class x: pass; x.whatever = lambda self: pass
, সুতরাং মূলত, আপনার নিয়োগের জন্য একটি প্রাইভেট