typing
module का उपयोग करें; यह प्रकार वस्तुओं आप उनकी सामग्री पर बाधाओं के साथ कंटेनर निर्दिष्ट करने के लिए उपयोग कर सकते हैं जेनरिक होता है,: कैसे आप अपने कोड के लिए डिजाइन और कैसे आप names()
की वापसी मान का उपयोग करना चाहते पर निर्भर करता है
import typing
def names() -> typing.List[str]: # list object with strings
return ['Amelie', 'John', 'Carmen']
def numbers() -> typing.Iterator[int]: # iterator yielding integers
for num in range(100):
yield num
, आप भी इस्तेमाल कर सकते हैं गीलेर के आधार पर types.Sequence
और types.MutableSequence
प्रकार यहां हैं, न कि आप परिणाम को म्यूटेट करने में सक्षम होने की उम्मीद करते हैं।
एक जनरेटर इटरेटर का एक विशिष्ट प्रकार है, इसलिए typing.Iterator
यहां उचित है। अपने जनरेटर भी send()
मान स्वीकार करता है और return
का उपयोग करता है एक StopIteration
मान सेट करने हैं, तो आप typing.Generator
object भी उपयोग कर सकते हैं:
def filtered_numbers(filter) -> typing.Generator[int, int, float]:
# contrived generator that filters numbers; returns percentage filtered.
# first send a limit!
matched = 0
limit = yield
yield # one more yield to pause after sending
for num in range(limit):
if filter(num):
yield num
matched += 1
return (matched/limit) * 100
यदि आप इशारा टाइप करने के लिए नए हैं, तो PEP 483 – The Theory of Type Hints सहायक हो सकता है।
स्रोत
2016-05-23 08:53:08