मुझे *args
के माध्यम से कार्य करने के लिए विशाल list
/tuple
पास करने की आवश्यकता है।फ़ंक्शन कॉल में * args के लिए निष्पादन मॉडल क्या है?
def f(*args): # defined in foreign module
pass
arguments = tuple(range(10000))
f(*arguments)
और मुझे आश्चर्य है कि फ़ंक्शन कॉल पर क्या होता है।
क्या यह किसी भी स्थितित्मक चर के समान arguments
संभालता है: इसे बचाएं और शरीर निष्पादन के दौरान मांग पर पहुंचें? या यह शरीर निष्पादन से पहले arguments
के माध्यम से स्थितित्मक तर्कों को विस्तारित करता है? या यह कुछ और है?
चूंकि 'तर्क' एक सूची है, लेकिन 'args' एक tuple है, हाँ, पुनरावृत्ति * होना है। ऐसा नहीं है कि यहां 'तर्क' बनाना एक टुपल मदद करेगा। –
आप उस कस्टम ऑब्जेक्ट को लिखकर परीक्षण करने का प्रयास कर सकते हैं जो आपको बताता है कि इसे कब चालू किया जा रहा है। – jonrsharpe
तो यहां तक कि यदि 'तर्क' एक टुपल है, तो यह पुनरावृत्ति वैसे भी होता है? – Ormazd