2015-09-22 7 views
7

* निम्नलिखित कोड में क्या है (pprint लाइब्रेरी में मिला)?फ़ंक्शन घोषणा में एक सितारा * अकेला क्या मतलब है?

def pformat(object, indent=1, width=80, depth=None, *, compact=False): 
    """Format a Python object into a pretty-printed representation.""" 
    return PrettyPrinter(indent=indent, width=width, depth=depth, 
         compact=compact).pformat(object) 

यदि यह *args था तो यह स्थितीय मापदंडों के एक मनमाना संख्या होगी। पैरामीटर मान args नामक टुपल में होंगे। पहले 4 पैरामीटर या तो नाम या स्थिति के आधार पर असाइन किए जा सकते हैं, पैरामीटर compact केवल नाम से असाइन किया जा सकता है ...

अच्छा, नहीं! क्योंकि यह the documentation से सहमत नहीं है:

एक समारोह कॉल में, कीवर्ड तर्क स्थितीय तर्क का पालन करना होगा।

तो, स्टार अन्य नामांकित तर्कों के बाद और उसके बाद क्या करता है? और इसका उपयोग कैसे किया जाता है? या इसका उपयोग क्यों नहीं किया जाता है?

उत्तर

10

यह कोई परिवर्तनीय तर्क नहीं होने पर स्थितित्मक तर्क keyword-only arguments से अलग करता है। यह एक पायथन -3 केवल सुविधा है।

+0

धन्यवाद। प्रश्न में मैंने पायथन 2 प्रलेखन पृष्ठ को संदर्भित किया है, लेकिन उद्धृत वाक्यांश 3 में भी है। – stenci

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