পাইথনে আমার ফাংশনগুলির জন্য নাম নির্বাচন করা সম্পর্কে আমি বিভ্রান্ত । কখনও কখনও পাইথন অন্তর্নির্মিত ফাংশনগুলি আবশ্যক যেমন: printফাংশন এবং স্ট্রিং পদ্ধতি find। কখনও কখনও তারা যেমন হয় না: উদাহরণস্বরূপ, lenএর নামটি অত্যাবশ্যক নয় calculate_lenএবং typeহয় না find_type।
আমি বুঝতে পারি যে এমন printকোনও মান প্রদান করে যা আমরা ব্যবহার করি না (অর্থাত্ None) এবং কিছু করে (যেমন এটি স্ক্রিনে একটি স্ট্রিং দেখায়), সুতরাং এর নামটি আবশ্যক।
তবে lenআমরা ব্যবহার করি এবং কিছু করি এমন একটি মূল্য ফেরত দেয় (যেমন একটি ক্রম বা ম্যাপিংয়ে কতগুলি আইটেম রয়েছে তা গণনা করে) এবং এর নামটি অতীব জরুরি নয় । অন্যদিকে, findস্ট্রিং পদ্ধতি (হিসাবে len) একটি মান দেয় যা আমরা ব্যবহার করি এবং কিছু করি এবং এর নামটি আবশ্যক ।
এই প্রশ্নটি জিজ্ঞাসা করার ফলে আমি সিজার সাইফারটি পর্যালোচনা করার জন্য এনক্রিপ্ট এবং ডিক্রিপ্ট স্ট্রিং এ একটি স্ক্রিপ্ট রেখেছি। পর্যালোচক বলেছেন যে:
কেবল অন্ত্রের অনুভূতি: ফাংশনগুলি স্টাফ করে। সুতরাং একটি ফাংশন জন্য একটি ভাল নাম একটি আবশ্যক: আমি
rotate_letterপরিবর্তে ব্যবহার করতে হবেrotated_letter।
rotated_letterএকটি সংখ্যা দ্বারা আবর্তিত একটি বর্ণকে উপস্থাপন করে একটি একক-বর্ণের স্ট্রিং প্রদান করে। আমি যা উত্তম জানি না, আমি ব্যবহৃত rotated_letterযেমন একটি মান ফেরায়, মত randintফাংশন র্যান্ডম মডিউল , তাই নয় কি generate_randint।
সুতরাং, এই ক্ষেত্রে, আমি কীভাবে কোনও ফাংশনটির নামকরণ করব যা ব্যবহারের জন্য কোনও মান ফেরত দেয়? আমি কি নামটি জরুরী বা একটি বিশেষ্য করে তুলি ? অন্যান্য ক্ষেত্রে এটি কীভাবে করা যায় তা স্পষ্ট যেমন যেমন বুলিয়ান ফাংশন , is_evenএবং is_palindromeআমরা কেবল এটি হ্যাঁ / কোনও প্রশ্নের মতোই করি না, এবং এমন ফাংশনগুলিও যা কেবল ব্যবহৃত হয় না এবং ব্যবহৃত হয় না যেমন মানগুলি (যেমন None) printএবং তালিকা পদ্ধতির তালিকা করে থাকে sort।
lenউদাহরণস্বরূপ, "দৈর্ঘ্য" হিসাবে ভাল ধারণা করা - আপনি তার যুক্তির একটি মেটা-স্তরের বর্ণনা পেয়ে যাচ্ছেন।