मैं एक विधि के साथ एक अजगर वर्ग जब बुला जो तर्क और कीवर्ड तर्क इस तरहअजगर समारोह * args और अन्य निर्दिष्ट कीवर्ड तर्क
class plot:
def __init__(self, x, y):
self.x = x
self.y = y
def set_axis(self, *args, xlabel="x", ylabel="y", **kwargs):
for arg in args:
<do something>
for key in kwargs:
<do somethng else>
को स्वीकार करना चाहिए के साथ ** kwargs:
plt = plot(x, y)
plt.set_axis("test1", "test2", xlabel="new_x", my_kwarg="test3")
मैं
01 की तरह मेरे पद्धति सेट करता है, तो वैसे भीTypeError: set_axis() got multiple values for keyword argument 'xlabel'
: मैं त्रुटि मिलती है
और कॉल:
plt = plot(x, y)
plt.set_axis(xlabel="new_x", "test1", "test2", my_kwarg="test3")
मैं SyntaxError: non-keyword arg after keyword arg
मिलता है, के रूप में मैं उम्मीद कर रहा था। पहले मामले में क्या गलत है? डिफॉल्ट वाले के अलावा, किसी भी उपयोगकर्ता तर्क और कीवर्ड तर्क को स्वीकार करने के लिए मुझे अपनी विधि कैसे बताई जानी चाहिए? (आशा है कि मेरे सवाल का काफी स्पष्ट है)
पाइथन का कौन सा संस्करण आप उपयोग कर रहे हैं? आपके द्वारा सूचीबद्ध प्रथम श्रेणी पायथन 2.7.3 में पार्स नहीं करती है क्योंकि 'set_axis' परिभाषा में पैरामीटर नाम से '* args' सफल होता है। – phant0m