2015-11-02 4 views
6

क्या स्फिंक्स में तर्कों को दस्तावेज करने के लिए एक समर्थित मानक है या वापसी मूल्य प्रकार जो एक साधारण, एकल वस्तु नहीं हैं?डेटा संरचना प्रकारों जैसे सूचियों के लिए स्फिंक्स डॉकस्ट्रिंग मानक क्या है?

उदाहरण के लिए, निम्न में, arg1 एक str है, arg2 str की एक सूची है, और arg3 या तो एक str या int है। आप स्फिंक्स में संग्रह या समग्र प्रकार कैसे निर्दिष्ट कर सकते हैं? या इसके लिए कोई आम मानक नहीं है?

def function(arg1, arg2, arg3): 
    """ 
    :param arg1: Argument 1 
    :type arg1: str 
    :param arg2: Argument 2 
    :type arg2: list[str] 
    :param arg3: Argument 3 
    :type arg3: str or int 
    """ 
    pass 
+2

कोई आम मानक नहीं है - यहाँ एक सुझाव https: //www.jetbrains। com/pycharm/help/type-hinting-in-pycharm.html, उदाहरण के लिए प्रतीत होता है http://sphinxcontrib-napoleon.readthedocs.org/en/latest/example_google.html – jonrsharpe

+0

ऐसा प्रतीत होता है कि कम से कम, टाइप करें arg2: collections.Iterable [str] पायथन 2.7 के लिए पिचर्म में टाइपिंग संकेत सक्षम करता है। क्या पाइथन में एक समान संघ प्रकार है जो arg3 के लिए काम कर सकता है? – Shookit

+0

यह 'str या int' स्वीकार करने के लिए अजीब लगता है, लेकिन अगर ऐसा होता है तो मैं इसे लिखूंगा! – jonrsharpe

उत्तर

2

अजगर 3.5 प्रकार संकेत है, जबकि अभी तक स्फिंक्स द्वारा समर्थित नहीं, संभावना अप्रचलित एक दिन स्फिंक्स प्रकार एनोटेशन कर देगा। https://docs.python.org/3/library/typing.html

अभी के लिए

, मुझे लगता है कि मॉड्यूल के रूप में ठीक उसी वाक्य रचना का उपयोग करना चाहिये, जो होगा:

  • मेकअप पोर्टिंग आसान है, और संभवतः automatable, बाद में
  • पर एक अद्वितीय अच्छी तरह से परिभाषित जिस तरह से चीजें करने के लिए निर्दिष्ट करता है

उदाहरण:

def f(list_of_int): 
    """ 
    :type list_of_int: List[int] 
    :rtype: int 
    """ 
    return list_of_int[0] + list_of_int[1] 

फिर जब आप 3.5 है, तो आप सिर्फ लिखेंगे:

def f(list_of_int : List[int]) -> int: 
    return list_of_int[0] + list_of_int[1] 

str or int हिस्सा Union साथ व्यक्त किया जा सकता: How to express multiple types for a single parameter or a return value in docstrings that are processed by Sphinx?

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