পাইথন ৩. এক্স (কেবল) এক্সটেনশানগুলিতে ব্যবহারের জন্য অবজেক্ট ভ্যালু দিয়ে আর্গুমেন্ট এবং রিটার্ন মানগুলিকে টীকায়িত করার অনুমতি দেওয়ার জন্য ফাংশন সংজ্ঞাটিকেও সাধারণ করে তোলে
।
ফাংশনের মানগুলি সম্পর্কে আরও স্পষ্ট করার জন্য এটির মেটা-ডেটা ব্যাখ্যা করা।
টীকাগুলি :valueআর্গুমেন্টের নাম এবং একটি ডিফল্টর আগে এবং ->valueআর্গুমেন্ট তালিকার মতো কোড করা হয়।
এগুলি __annotations__ফাংশনটির একটি বৈশিষ্ট্যে সংগ্রহ করা হয়, তবে পাইথন নিজেই বিশেষ হিসাবে বিবেচিত হয় না:
>>> def f(a:99, b:'spam'=None) -> float:
... print(a, b)
...
>>> f(88)
88 None
>>> f.__annotations__
{'a': 99, 'b': 'spam', 'return': <class 'float'>}
সূত্র: পাইথন পকেট রেফারেন্স, পঞ্চম সংস্করণ
উদাহরণ:
typeannotationsমডিউল টাইপ পরীক্ষণ এবং পাইথন কোড ধরণ অনুমান জন্য সরঞ্জাম একটি সেট প্রদান করে। এটি ফাংশন এবং অবজেক্টগুলিকে টীকা দেওয়ার জন্য দরকারী ধরণের একটি সেট সরবরাহ করে।
এই সরঞ্জামগুলি সাধারণত স্থির বিশ্লেষক যেমন লিন্টার, কোড সমাপ্তি গ্রন্থাগার এবং আইডিই ব্যবহার করে ডিজাইন করা হয়েছে। অতিরিক্তভাবে, রান-টাইম চেক তৈরির জন্য সজ্জকার সরবরাহ করা হয়। পাইথন-এ রান-টাইম টাইপ চেকিং সবসময় ভাল ধারণা হয় না তবে কিছু ক্ষেত্রে এটি খুব কার্যকর হতে পারে।
https://github.com/ceronman/typeannotations
কীভাবে টাইপিং আরও ভাল কোড লিখতে সহায়তা করে
টাইপিং আপনাকে কোডটি উত্পাদনে প্রেরণের আগে ধরণের ত্রুটিগুলি ধরতে এবং কিছু সুস্পষ্ট বাগ থেকে বাধা দেওয়ার জন্য স্ট্যাটিক কোড বিশ্লেষণ করতে সহায়তা করে। মাইপির মতো সরঞ্জাম রয়েছে যা আপনি নিজের সফটওয়্যার লাইফ চক্রের অংশ হিসাবে আপনার সরঞ্জাম বাক্সে যুক্ত করতে পারেন। মাইপি আপনার কোডবেসের বিরুদ্ধে আংশিক বা সম্পূর্ণভাবে চালিয়ে সঠিক প্রকারের জন্য পরীক্ষা করতে পারে। মাইপি আপনাকে কোনও ফাংশন থেকে যখন মানটি ফেরত দেয় তখন কোনও নয় ধরণের জন্য পরীক্ষা করার মতো বাগগুলি সনাক্ত করতে সহায়তা করে। টাইপিং আপনার কোডটিকে আরও পরিষ্কার করে তুলতে সহায়তা করে। মন্তব্যগুলি ব্যবহার করে আপনার কোড নথীকরণের পরিবর্তে, যেখানে আপনি কোনও ডাস্ট্রিংয়ে প্রকারগুলি নির্দিষ্ট করেছেন, আপনি কোনও কার্যকারিতা ব্যয় ছাড়াই প্রকারগুলি ব্যবহার করতে পারেন।
পাইথন পরিষ্কার করুন: পাইথনে মার্জিত কোডিং ISBN: ISBN-13 (pbk): 978-1-4842-4877-5
পিইপি 526 - চলক টীকাগুলির জন্য সিনট্যাক্স
https://www.python.org/dev/peps/pep-0526/
https://www.attrs.org/en/stable/types.html