টিএলডিআর: একটি void
রিটার্ন টাইপ টীকাটির idiomatic সমতুল্য -> None
।
def foo() -> None:
...
এটি মেলে যা একটি ফাংশন ছাড়া return
বা কেবল একটি খালি return
মূল্যায়ন করে None
।
def void_func():
pass
print(void())
রিটার্নের ধরণ ছাড়ার অর্থ এই নয় যে কোনও রিটার্নের মান নেই। অনুযায়ী PEP 484 :
একটি পরীক্ষিত ফাংশনের জন্য, আর্গুমেন্টগুলির জন্য এবং রিটার্নের ধরণের জন্য ডিফল্ট টীকা Any
।
এর অর্থ হল মানটি গতিময়ভাবে টাইপ করা হয় এবং কোনও ক্রিয়াকলাপকে স্থিতিশীলভাবে সমর্থন করে । এটি ব্যবহারিকভাবে এর বিপরীত অর্থ void
।
পাইথনে টাইপ হিন্টিংয়ের জন্য কঠোরভাবে প্রকৃত প্রকারের প্রয়োজন হয় না। উদাহরণস্বরূপ, টীকা টাইপ নামের স্ট্রিং ব্যবহার করতে পারেন: Union[str, int]
, Union[str, 'int']
, 'Union[str, int]'
এবং বিভিন্ন রূপগুলো সমতুল্য।
একইভাবে, টাইপ টীকা None
হিসেবে গণ্য করা হয় মানে "হল NoneType
"। এটি কেবল রিটার্নের ধরণের জন্য নয়, যদিও আপনি এটি বেশিরভাগ ক্ষেত্রে সেখানে দেখতে পাবেন:
bar : None
def foo(baz: None) -> None:
return None
এটি জেনেরিক ধরণের ক্ষেত্রেও প্রযোজ্য। উদাহরণস্বরূপ, যদি আপনি ব্যবহার করতে পারেন None
মধ্যে Generator[int, None, None]
জেনারেটরের গ্রহণ করা বা মান ফেরত দেয় না ইঙ্গিত।
যদিও PEP 484 দাড়ায় যে None
উপায়ে type(None)
, আপনি করা উচিত নয় আধুনিক ফর্ম স্পষ্টভাবে ব্যবহার করুন। হিন্টিং স্পেসিফিকেশন টাইপের কোনও রূপ অন্তর্ভুক্ত করে নাtype(...)
। এটি প্রযুক্তিগতভাবে একটি রানটাইম এক্সপ্রেশন এবং এর সমর্থন পুরোপুরি টাইপ চেকারের উপর নির্ভর করে। mypy
প্রকল্পের হয় সমর্থন মুছে ফেলার জন্য বিবেচনা করা জন্য type(None)
এবং পাশাপাশি 484 থেকে এটা মুছে ফেলুন।
বা হতে পারে আমাদের PEP 484 আপডেট করা উচিত যাতে type(None)
এটি টাইপ হিসাবে বৈধ নয় এবং None
একমাত্র সঠিক বানানটি কী? এটির করার সুস্পষ্ট উপায় ইত্যাদি - এবং কেবলমাত্র একটিই - সেখানে থাকতে হবে
--- জুক্কাএল, 18 মে 2018
void
রিটার্ন টাইপের সাথে ফাংশন নেই । সুস্পষ্ট ব্যতীত যে কোনও ফাংশন (বা কোনও ফাংশনে শাখা)return
ফিরে আসবেNone
। আমি ধরে নিলাম যে ওপি বুঝতে পেরেছে, এই মন্তব্যটি বেশিরভাগই ভবিষ্যতের পাঠকদের উপকারের জন্য ...