result = 'function (%s)' % ', '.join(map(str,args))
मैं सिर्फ आर्ग के बजाय नक्शा (str, args) की सलाह देते हैं, क्योंकि आपके तर्कों के कुछ संभावित नहीं तार हो सकता है और उदाहरण के लिए एक लेखन त्रुटि का कारण होता है, अपनी सूची में किसी पूर्णांक तर्क के साथ:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected string, int found
जब आप dict वस्तुओं में आते हैं तो आप संभवतया ताना के मूल्यों को अलग-अलग करना चाहते हैं (संभवतः मान जो आप इस फ़ंक्शन में पास करना चाहते हैं)। आप dict वस्तु पर ही विधि में शामिल होने है, तो आप चाबियाँ, अलग इसलिए की तरह मिल जाएगा:
>>> d = {'d':5, 'f':6.0, 'r':"BOB"}
>>> ','.join(d)
'r,d,f'
क्या आप चाहते हैं निम्नलिखित है:
>>> d = {'d':5, 'f':6.0, 'r':"BOB"}
>>> result = 'function (%s)' % ', '.join(map(str, d.values()))
>>> result
'function (BOB, 5, 6.0)'
नई समस्या आपके सामने आने वाली ध्यान दें, तथापि। जब आप जॉइन फ़ंक्शन के माध्यम से स्ट्रिंग तर्क पास करते हैं, तो यह इसके उद्धरण को खो देता है। तो यदि आप तारों को पारित करने की योजना बना रहे हैं, तो आपने उद्धरण खो दिए हैं जो आम तौर पर किसी फ़ंक्शन में पारित होने पर स्ट्रिंग को घेर लेते हैं (तारों को कई सामान्य-उद्देश्य भाषाओं में उद्धृत किया जाता है)। यदि आप केवल संख्या उत्तीर्ण कर रहे हैं, हालांकि, यह आपके लिए कोई समस्या नहीं है।
शायद मैंने अभी वर्णित समस्या को हल करने का एक अच्छा तरीका है, लेकिन यहां एक विधि है जो आपके लिए काम कर सकती है।
>>> l = list()
>>> for val in d.values():
... try:
... v = float(val) #half-decent way of checking if something is an int, float, boolean
... l.append(val) #if it was, then append the original type to the list
... except:
... #wasn't a number, assume it's a string and surround with quotes
... l.append("\"" + val + "\"")
...
>>> result = 'function (%s)' % ', '.join(map(str, l))
>>> result
'function ("BOB", 5, 6.0)'
अब स्ट्रिंग के आस-पास उद्धरण हैं। यदि आप संख्यात्मक प्राइमेटिव्स और तारों की तुलना में अधिक जटिल प्रकार गुजर रहे हैं तो आपको शायद एक नया प्रश्न चाहिए :)
एक आखिरी नोट: मैं d.values () का उपयोग कर रहा हूं ताकि यह दिखाया जा सके कि शब्दकोश से मूल्यों को कैसे निकाला जाए, लेकिन वास्तव में जो शब्दकोष से मूल्यों को बहुत अधिक मनमाना क्रम में वापस कर देगा। चूंकि आपके फ़ंक्शन को किसी विशेष क्रम में तर्कों की आवश्यकता होती है, इसलिए आपको d.values () को कॉल करने के बजाय मैन्युअल रूप से अपनी मानों की सूची बनाना चाहिए।
यह परिणाम 'फ़ंक्शन (ए, बीसीडी)' में होता है, अगर मुझे – hop