পাইথনে get মেথডের ব্যবহার। Use of get method [get()] in python

 আমরা জানি পাইথন থেকে কোন স্পেসিফিক key এর ভ্যালু বের করার জন্য আমরা দুইটা পদ্ধতি ব্যবহার করে থাকি। যথাঃ

  1. indexing এর মাধ্যমে এবং
  2. get() মেথডের মাধ্যমে।

তো আসলে এই দুইটার মধ্যে পার্থক্য কি? যখন একটা পদ্ধতি ব্যবহার করে আমরা আমাদের কাজ চালাতে পারছি তখন কেনই বা আমরা দ্বিতীয় পদ্ধতি ব্যবহার করব? হ্যা, বাহ্যিক দিক থেকে প্রশ্নটা লজিকালি মনে হলেও এদের ভিতর অবশ্যই পার্থক্য আছে। অর্থাৎ আমরা এই দুইটা পদ্ধতি দুইটা প্রবলেম হ্যান্ডেল করার জন্য ব্যবহার করে থাকি।

নিচের উধারণগুলা দেখলে আশা করি আপনি ক্লিয়ারলি বুঝতে পারবেন যে এই দুইটা কোন কোন সময় ব্যবহার করতে হয়।


dic = {"A":1, "B":2}
print(dic["A"])
print(dic["C"])

Output:

Traceback (most recent call last):

File ".\dic.py", line 3, in print (dic["C"])

KeyError: 'C'


এখানে দেখা যাচ্ছে print(dic["A"]) এর মান dic ভ্যারিয়েবলে আছে কিন্তু print(dic["C"]) এর মান dic ভ্যারিয়েবলে নেই। সুতরাং আমাদেরকে প্রথম ক্ষেত্রে 1 প্রিন্ট করার কথা এবং দ্বিতীয় মানটি (C) যেহেতু নেই সুতরাং সেখানে আমাদের error দেখানোর কথা। কিন্তু পাইথন সেটা করছে না। সে যে কোন একটা মান না থাকার জন্য পুরা কোডকে KeyError হিসাবে দেখিয়ে দিচ্ছে। আর মূলত এই সমস্যা সমাধানের জন্য পাইথনে get() মেথড ব্যবহার করা হয়। নিচের উধারণটা দেখঃ


dic = {"A":1, "B":2}
print(dic.get("A"))
print(dic.get("C"))

Output:

1

None


অর্থাৎ এখানে যে মানটা থাকবে সেটার জন্য পাইথন প্রিন্ট করবে এবং যেটা থাকবে না সেটার জন্য বাই ডিফল্ট None প্রিন্ট করবে। কিন্তু আমরা চাইলে এই বিল্ট ইন বাই ডিফল্ট Non লেখাটাকেও হ্যান্ডেল করতে পারব। সেক্ষেত্রে আমাদেরকে get() মেথডের মধ্যে আমাদেরকে লিখে দিতে হবে যে আমরা কি প্রিন্ট করতে চাই। নিচের উধারণ দেখুনঃ


dic = {"A":1, "B":2}
print(dic.get("A"))
print(dic.get("C"))
print(dic.get("C","Not Found ! "))

Output:

1

None

Not Found !










Post a Comment

Previous Post Next Post