2016-04-22 12 views
14

अजगर 3.x में, यह इस तरह के रूप में एक समारोह की वापसी प्रकार एनोटेशन उपयोग करने के लिए आम है,? सबसे अच्छा सिंटैक्स का उपयोग,अजगर शून्य वापसी प्रकार एनोटेशन

  1. def foo() -> None:
      नहीं
    • तार्किक IMO, क्योंकि None एक प्रकार नहीं है
  2. def foo() -> type(None):
    • :

      मैं 3 विकल्पों पर विचार कर रहा हूँ मुझेप्राप्त करने के लिए पता है,

  3. def foo():
    • स्पष्ट वापसी प्रकार जानकारी छोड़ देते हैं।

विकल्प 2. मेरे लिए सबसे तार्किक लगता है, लेकिन मैं पहले से ही की 1.

+1

एफडब्ल्यूआईडब्ल्यू, पायथन में 'शून्य' रिटर्न प्रकार के साथ कार्य नहीं हैं। एक स्पष्ट 'वापसी' के बिना कोई भी फ़ंक्शन (या फ़ंक्शन में शाखा) 'कोई नहीं' लौटाएगा। मुझे लगता है कि ओपी समझता है कि, यह टिप्पणी ज्यादातर भावी पाठकों के लाभ के लिए है ... –

उत्तर

18

कुछ उदाहरणों को देखा है यह सीधे PEP 484 -- Type Hints प्रलेखन से है:

में इस्तेमाल किया जब एक प्रकार का संकेत, अभिव्यक्ति Nonetype(None) के बराबर माना जाता है।

और, जैसा कि आप देख सकते हैं कि अधिकांश उदाहरण None का उपयोग वापसी प्रकार के रूप में करते हैं।

+3

स्पष्टीकरण के लिए, ऊपर विकल्प 1 चुनें। –

+2

NoReturn प्रकार https://www.python.org/dev/peps/pep-0484/#the-noreturn-type के बारे में क्या? – asmaier

+1

@asmaier [इस सवाल] के अनुसार (https://stackoverflow.com/questions/38570144/type-hint-that-a-function-never-returns) जो उद्धृत करता है [पीईपी 484 - टाइप संकेत] (https: // www.python.org/dev/peps/pep-0484/) 'NoReturn' प्रकार का उपयोग किया जाता है "... उन कार्यों को एनोटेट करने के लिए जो सामान्य रूप से कभी नहीं लौटते हैं। उदाहरण के लिए, एक फ़ंक्शन जो बिना शर्त अपवाद उठाता है ..." –

संबंधित मुद्दे