আমি নিম্নলিখিত উদাহরণটি বুঝতে পারি না, বলুন যে আমার এই ফাংশনগুলি রয়েছে:
# python likes
def save(filename, data, **kwargs):
fo = openX(filename, "w", **kwargs) # <- #1
fo.write(data)
fo.close()
# python doesnt like
def save2(filename, data, **kwargs):
fo = openX(filename, "w", kwargs) # <- #2
fo.write(data)
fo.close()
def openX(filename, mode, **kwargs):
#doing something fancy and returning a file object
কেন # 1 সঠিক সমাধান এবং # 2 ভুলটি? **kwargsমূলত একটি ডিক, তাই আমি যদি ওপেনএক্সে যুক্তিটি পাস করতে চাই তবে আমি মনে করি সঠিক উপায়টি ছাড়া হবে **এবং কেবল ডিকটি দেওয়া হবে । তবে পাইথন স্পষ্টতই দ্বিতীয়টির মতো না এবং আমাকে বলে যে আমি 2 টি আর্গুমেন্টের পরিবর্তে 3 দিয়েছি। তাহলে এর পেছনে কারণ কী?
**argsকোড এ কল করেন তা ভাবছি । এটি সম্ভবত সবচেয়ে খারাপ নাম হিসাবে মানুষ এটির সাথে বিভ্রান্ত করবে*args