আমি কিছু ফাইল উত্পন্ন করতে টেম্পলেট স্ট্রিংগুলি ব্যবহার করছি এবং আমার আগের টেম্পলেট কোডটি এর থেকে কিছুটা হ্রাস করার জন্য আমি এই উদ্দেশ্যে নতুন এফ-স্ট্রিংয়ের সংক্ষিপ্ততা পছন্দ করি:
template_a = "The current name is {name}"
names = ["foo", "bar"]
for name in names:
print (template_a.format(**locals()))
এখন আমি এটি করতে পারি, সরাসরি ভেরিয়েবলগুলি প্রতিস্থাপন:
names = ["foo", "bar"]
for name in names:
print (f"The current name is {name}")
যাইহোক, কখনও কখনও টেমপ্লেটটি অন্য কোথাও সংজ্ঞায়িত করা বোধগম্য হয় - কোডে উচ্চতর বা কোনও ফাইল বা কিছু থেকে আমদানি করা। এর অর্থ টেমপ্লেট এটির মধ্যে ফর্ম্যাটিং ট্যাগ সহ একটি স্ট্যাটিক স্ট্রিং। দোভাষীকে স্ট্রিংটিকে একটি নতুন এফ-স্ট্রিং হিসাবে ব্যাখ্যা করতে বলার জন্য স্ট্রিংয়ের কিছু একটা ঘটতে হবে, তবে আমি জানি না যে এরকম কোনও জিনিস আছে কিনা।
কোনও স্ট্রিং আনার কোনও উপায় আছে এবং .format(**locals())
কলটি এড়ানোর জন্য এফ-স্ট্রিং হিসাবে ব্যাখ্যা করা হয়েছে ?
আদর্শভাবে আমি এই জাতীয় কোড করতে সক্ষম হতে চাই ... (যেখানে magic_fstring_function
আমি বুঝতে পারি না এমন অংশটি কোথায় আসে):
template_a = f"The current name is {name}"
# OR [Ideal2] template_a = magic_fstring_function(open('template.txt').read())
names = ["foo", "bar"]
for name in names:
print (template_a)
... এই কাঙ্ক্ষিত আউটপুট সহ (ফাইলটি দুটিবার না পড়ে):
The current name is foo
The current name is bar
... তবে আসল আউটপুটটি আমি পাই:
The current name is {name}
The current name is {name}
f
স্ট্রিং দিয়ে এটি করতে পারবেন না । একটিf
স্ট্রিং ডেটা নয় এবং এটি অবশ্যই স্ট্রিং নয়; এটি কোড (dis
মডিউলটি দিয়ে এটি পরীক্ষা করুন )) আপনি যদি পরবর্তী সময়ে কোডটি মূল্যায়ন করতে চান তবে আপনি একটি ফাংশন ব্যবহার করেন।