কম্পিউটার টিউটোরিয়াল

পাইথনে স্ট্রিং টেমপ্লেট ক্লাস


পাইথন স্ট্রিং টেমপ্লেট ক্লাস একটি সিম্পল টেমপ্লেট স্ট্রিং তৈরি করতে ব্যবহৃত হয়। পাইথন টেমপ্লেট স্ট্রিং প্রথমে পাইথন ২.৪-এ পরিচয় করানো হয়েছিল। পাইথন স্ট্রিং টেমপ্লেট কনস্ট্রাক্টর আর্গুমেন্ট হিসেবে টেমপ্লেট স্ট্রিং পাস করে তৈরি করা হয়। যেখানে স্ট্রিং ফরম্যাটিং অপারেটর সাবস্টিটিউশনের জন্য পারসেন্ট সাইন ব্যবহার করে, টেমপ্লেট অবজেক্ট ডলার সাইন ব্যবহার করে।

টেমপ্লেট ক্লাস টেমপ্লেট থেকে স্ট্রিং তৈরি করার তিনটি মেথড প্রদান করে:

  • Class string.Template(template) - কনস্ট্রাক্টর একটি একক আর্গুমেন্ট নেয়, যা হলো টেমপ্লেট স্ট্রিং।

  • substitute(mapping, **keywords) - টেমপ্লেট স্ট্রিং ভ্যালুর জন্য স্ট্রিং ভ্যালু (mapping) সাবস্টিটিউট করার মেথড। Mapping হলো একটি ডিকশনারি-লাইক অবজেক্ট, এবং এর মান ডিকশনারি হিসেবে অ্যাক্সেস করা যায়। যদি keywords আর্গুমেন্ট ব্যবহার করা হয়, তবে এটি প্লেসহোল্ডার প্রতিনিধিত্ব করে। যখন mapping এবং keywords দুটিই ব্যবহার করা হয়, তখন keyword প্রাধান্য পায়। যদি প্লেসহোল্ডার mapping বা keywords-এ অনুপস্থিত থাকে, একটি KeyError থ্রো করা হয়।

  • safe_substitute(mapping, **keywords) - substitute()-এর মতো কাজ করে। তবে, যদি প্লেসহোল্ডার mapping বা keywords-এ অনুপস্থিত থাকে, ডিফল্টভাবে মূল প্লেসহোল্ডারটি ব্যবহার করা হয়, সুতরাং KeyError এড়িয়ে যাওয়া যায়। এছাড়া '$'-র যেকোনো প্রেরণা ডলার সাইন রিটার্ন করে।

টেমপ্লেট অবজেক্টের একটি পাবলিকলি উপলব্ধ অ্যাট্রিবিউট রয়েছে:

  • Template - এটি কনস্ট্রাক্টরের টেমপ্লেট আর্গুমেন্ট হিসেবে পাস করা অবজেক্ট। যদিও রিড-অনলি অ্যাক্সেস এনফোর্স করা হয় না, আপনার প্রোগ্রামে এই অ্যাট্রিবিউট পরিবর্তন না করা ভালো।

পাইথন টেমপ্লেট স্ট্রিং উদাহরণ

from string import Template
t = Template('$when, $who $action $what.')
s = t.substitute(when='In the winter', who='Rajesh', action='drinks', what='Coffee')
print(s)
# dictionary as substitute argument
d = {"when":"In the winter", "who":"Rajesh", "action":"drinks","what":"Coffee"}
s = t.substitute(**d)
print(s)

আউটপুট

In the winter, Rajesh drinks Coffee.
In the winter, Rajesh drinks Coffee.

safe_substitute()

from string import Template
t = Template('$when, $who $action $what.')
s = t.safe_substitute(when='In the winter', who='Rajesh', action='drinks', what='Coffee')
print(s)

ফলাফল

In the winter, Rajesh drinks Coffee.

টেমপ্লেট স্ট্রিং প্রিন্ট করা

টেমপ্লেট অবজেক্টের template অ্যাট্রিবিউট টেমপ্লেট স্ট্রিং রিটার্ন করে।

from string import Template
t = Template('$when, $who $action $what.')
print('Template String: ', t.template)

ফলাফল

Template String: $when, $who $action $what.

$ সাইন এস্কেপ করা

from string import Template
t = Template('$$ is called $name')
s = t.substitute(name='Dollar')
print(s)

ফলাফল

$ is called Dollar

${identifier} example

${} is equivalent to $

এটি তখন প্রয়োজন হয় যখন বৈধ আইডেন্টিফায়ার ক্যারেক্টার প্লেসহোল্ডারের পরে থাকে কিন্তু প্লেসহোল্ডারের অংশ নয়, যেমন ${noun}ification।

from string import Template
t = Template('$noun adjective is ${noun}ing')
s = t.substitute(noun='Test')
print(s)

ফলাফল

Test adjective is Testing

  1. পাইথনে স্ট্রিং রোটেশন যাচাই

  2. পাইথনে স্ট্রিং রিভার্স (ইন-প্লেস)

  3. পাইথনে casefold() স্ট্রিং মেথড

  4. স্ট্রিংকে পাইথন ক্লাস অবজেক্টে কীভাবে রূপান্তর করবেন?