সতর্কতা 1: দস্তাবেজগুলিতে বর্ণিত হিসাবে, এটি সমস্ত পাইথন বাস্তবায়নে কাজ করার গ্যারান্টিযুক্ত নয়:
সিপথন বাস্তবায়নের বিশদ: এই ফাংশনটি দোভাষীগুলিতে পাইথন স্ট্যাক ফ্রেম সমর্থনের উপর নির্ভর করে, যা পাইথনের সমস্ত বাস্তবায়নের জন্য গ্যারান্টিযুক্ত নয়। পাইথন স্ট্যাক ফ্রেম সমর্থন ছাড়াই কোনও বাস্তবায়নে চলতে থাকলে এই ফাংশনটি কোনও দেয় না।
সতর্কতা 2: এই ফাংশনটি কোডটি আরও ছোট করে তোলে তবে এটি পাইথন দর্শনের পক্ষে যতটা স্পষ্ট তা স্পষ্ট হওয়ার বিরোধিতা করে। তদ্ব্যতীত, জন মন্তব্যে জন ক্রিস্টোফার জোন্সের নির্দেশিত সমস্যাগুলি সমাধান করে না, যদিও আপনি কীগুলির পরিবর্তে বৈশিষ্ট্যগুলির সাথে কাজ করে এমন একটি ফাংশন করতে পারেন। এই মাত্র একটি বিক্ষোভের পথ পাবো না করতে যে আপনি যদি সত্যিই চাই না!
def destructure(dict_):
if not isinstance(dict_, dict):
raise TypeError(f"{dict_} is not a dict")
parent_frame = inspect.currentframe().f_back
(line,) = inspect.getframeinfo(parent_frame).code_context
lvalues, _equals, _rvalue = line.strip().partition("=")
keys = [s.strip() for s in lvalues.split(",") if s.strip()]
if missing := [key for key in keys if key not in dict_]:
raise KeyError(*missing)
for key in keys:
yield dict_[key]
In [5]: my_dict = {"hello": "world", "123": "456", "key": "value"}
In [6]: hello, key = destructure(my_dict)
In [7]: hello
Out[7]: 'world'
In [8]: key
Out[8]: 'value'
এই সমাধানটি আপনাকে জাভাস্ক্রিপ্টের মতো কিছু না কিছু কী বাছাই করতে দেয়। এটি ব্যবহারকারী-প্রদত্ত অভিধানের জন্যও নিরাপদ