python - पाइथन एलिप्सिस ऑब्जेक्ट क्या करता है?




ellipsis (6)

नेमस्पेस को निष्क्रिय रूप से सर्फ करते समय मैंने " एलीप्सिस " नामक एक अजीब दिखने वाली वस्तु देखी, यह ऐसा कुछ प्रतीत नहीं होता है या ऐसा कुछ भी नहीं करता है, लेकिन यह एक वैश्विक रूप से उपलब्ध बिल्टिन है।

एक खोज के बाद मैंने पाया कि इसका उपयोग नम्पी और सिस्पी द्वारा स्लाइसिंग सिंटैक्स के कुछ अस्पष्ट रूप में किया जाता है ... लेकिन लगभग कुछ भी नहीं।

क्या यह ऑब्जेक्ट विशेष रूप से Numpy + Scipy का समर्थन करने के लिए भाषा में जोड़ा गया था? क्या एलिप्सिस का कोई सामान्य अर्थ या उपयोग है?

D:\workspace\numpy>python
Python 2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> Ellipsis
Ellipsis

आप इलिप्सिस स्वयं का उपयोग कर सकते हैं, कस्टम स्लाइसिंग स्थितियों जैसे numpy ने किया है, लेकिन इसका किसी भी बिल्टिन क्लास में कोई उपयोग नहीं है।

मुझे नहीं पता कि यह विशेष रूप से numpy में उपयोग के लिए जोड़ा गया था, लेकिन मैं निश्चित रूप से इसे कहीं और इस्तेमाल नहीं देखा है।

यह भी देखें: आप पायथन में इलिप्सिस स्लाइसिंग सिंटैक्स का उपयोग कैसे करते हैं?


इसका इच्छित उपयोग केवल इन तृतीय पक्ष मॉड्यूल के लिए नहीं होना चाहिए। यह पाइथन दस्तावेज में ठीक से उल्लेख नहीं किया गया है (या शायद मैं इसे नहीं मिला) लेकिन इलिप्सिस ... वास्तव में कम से कम एक स्थान पर सीपीथन में उपयोग किया जाता है।

इसका उपयोग पायथन में अनंत डेटा संरचनाओं का प्रतिनिधित्व करने के लिए किया जाता है। सूचियों के साथ खेलते समय मैं इस नोटेशन पर आया था।

अधिक जानकारी के लिए यह प्रश्न देखें।


पायथन 3 में, आप कोड के लिए "एनओपी" प्लेसहोल्डर के रूप में एलिप्सिस शाब्दिक ... उपयोग कर सकते हैं:

def will_do_something():
    ...

यह जादू नहीं है; किसी भी अभिव्यक्ति का उपयोग इसके बजाय किया जा सकता है ... , उदाहरण के लिए:

def will_do_something():
    1

("स्वीकृत" शब्द का उपयोग नहीं कर सकता, लेकिन मैं कह सकता हूं कि इस उपयोग को ग्विडो द्वारा पूरी तरह से खारिज नहीं किया गया था।)


पायथन 3.5 और PEP484 , typing मॉड्यूल का उपयोग करते समय शाब्दिक PEP484 का उपयोग कुछ प्रकारों को स्थैतिक प्रकार चेकर में इंगित करने के लिए किया जाता है।

उदाहरण 1:

मनमानी-लंबाई सजातीय tuples एक प्रकार और Tuple[int, ...] का उपयोग करके व्यक्त किया जा सकता है, उदाहरण के लिए Tuple[int, ...]

उदाहरण 2:

तर्कों की सूची के लिए एक शाब्दिक इलिप्सिस (तीन बिंदु) को प्रतिस्थापित करके कॉल हस्ताक्षर निर्दिष्ट किए बिना कॉल करने योग्य के वापसी प्रकार की घोषणा करना संभव है:

def partial(func: Callable[..., str], *args) -> Callable[..., str]:
    # Body

doctest आउटपुट निर्दिष्ट करते समय आप एलिप्सिस का भी उपयोग कर सकते हैं:

class MyClass(object):
    """Example of a doctest Ellipsis

    >>> thing = MyClass()
    >>> # Match <class '__main__.MyClass'> and <class '%(module).MyClass'>
    >>> type(thing)           # doctest:+ELLIPSIS
    <class '....MyClass'>
    """
    pass

पायथन दस्तावेज से :

इस ऑब्जेक्ट का विस्तार विस्तारित टुकड़ा नोटेशन द्वारा किया जाता है ( पायथन संदर्भ मैनुअल देखें )। यह कोई विशेष संचालन का समर्थन नहीं करता है। Ellipsis नामक एक इलिप्सिस ऑब्जेक्ट है (एक अंतर्निहित नाम)।







ellipsis