পাইথনে কোনও ফাইল বা ফাইল-জাতীয় অবজেক্টের জন্য ব্যবহার করার জন্য কোনও সঠিক ধরণের ইঙ্গিত রয়েছে? উদাহরণস্বরূপ, আমি কীভাবে এই ফাংশনের রিটার্ন মান টাইপ-ইঙ্গিত করব?
def foo():
return open('bar')
পাইথনে কোনও ফাইল বা ফাইল-জাতীয় অবজেক্টের জন্য ব্যবহার করার জন্য কোনও সঠিক ধরণের ইঙ্গিত রয়েছে? উদাহরণস্বরূপ, আমি কীভাবে এই ফাংশনের রিটার্ন মান টাইপ-ইঙ্গিত করব?
def foo():
return open('bar')
উত্তর:
পাঠ্য মোডে বা বাইনারি মোডে খোলা ফাইলগুলির জন্য যথাক্রমে typing.TextIO
বা typing.BinaryIO
প্রকারগুলি ব্যবহার করুন ।
দস্তাবেজগুলি থেকে :
ক্লাস
typing.IO
আই / ও স্ট্রিম প্রকারের জন্য মোড়কের নেমস্পেস।
এটি জেনেরিক ধরণ
IO[AnyStr]
এবং উপকরণTextIO
এবংBinaryIO
যথাক্রমেIO[str]
এবং এর জন্য সংজ্ঞা দেয়IO[bytes]
। এগুলি I / O স্ট্রিমের প্রকারের প্রতিনিধিত্ব করে যেমন ফিরে এসেছেopen()
।
def f() -> IO: return open('test')
কোনওটিই আমার পক্ষে কাজ করছে বলে মনে হচ্ছে না: পাইচার্মে "প্রত্যাশিত ধরণের 'আইও' দেয়, পরিবর্তে 'টেক্সটআইওউপর [টিআর] পেয়েছেন"।
IO[str]
?
সংক্ষিপ্ত উত্তর:
from typing import TextIO
নয় from typing import *
।IO
কোন ধরণের নির্দিষ্ট না করেই কোনও ফাইল বোঝাতে ব্যবহার করুনTextIO
বা BinaryIO
যদি আপনি টাইপ জানেনউদাহরণ হিসাবে:
from typing import BinaryIO
def binf(inf: BinaryIO):
pass
with open('x') as f:
binf(f)
এর একটি পরিদর্শন ত্রুটি দেয় (পাইচার্মে) Expected type 'BinaryIO', got 'TextIO' instead