وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

قالب بندی رشته ها با کلاس قالب پایتون

0 4
زمان لازم برای مطالعه: 12 دقیقه


معرفی

از الگوهای پایتون برای جایگزینی داده ها به رشته ها استفاده می شود. با الگوها، ما یک رابط بسیار قابل تنظیم برای جایگزینی رشته (یا درون یابی رشته) به دست می آوریم.

پایتون در حال حاضر راه های زیادی را برای جایگزینی رشته ها ارائه می دهد، از جمله f-strings که اخیراً معرفی شده است. در حالی که جایگزین کردن رشته ها با الگوها کمتر رایج است، قدرت آن در این است چگونه ما می توانیم قوانین قالب بندی رشته خود را سفارشی کنیم.

در این مقاله، رشته ها را با پایتون قالب بندی می کنیم Template کلاس سپس نگاهی به این خواهیم داشت که چگونه می‌توانیم روشی را که الگوهای ما می‌توانند داده‌ها را به رشته‌ها جایگزین کنند، تغییر دهیم.

برای درک بهتر این موضوعات، به دانش اولیه نیاز دارید روی روش کار با کلاس ها و عبارات منظم

آشنایی با کلاس قالب پایتون

پایتون Template کلاس به string ماژول از پایتون 2.4. این کلاس برای استفاده به عنوان جایگزینی برای گزینه های جایگزین داخلی (عمدتاً به %) برای ایجاد الگوهای پیچیده مبتنی بر رشته و برای مدیریت آنها به روشی کاربر پسند.

پیاده سازی کلاس از عبارات منظم برای مطابقت با یک الگوی کلی معتبر استفاده می کند رشته های قالب. یک رشته الگوی معتبر یا نگهدارنده مکان، از دو بخش تشکیل شده است:

  • این $ سمبل
  • یک شناسه معتبر پایتون شناسه هر دنباله ای از حروف بزرگ و کوچک A تا Z است که زیرخط (_) و ارقام 0 تا 9. یک شناسه نمی تواند با اعداد شروع شود و نمی تواند یک کلمه کلیدی پایتون باشد.

در یک رشته الگو، $name و $age متغیرهای معتبر در نظر گرفته می شوند.

برای استفاده از پایتون Template کلاس در کد ما، باید:

  1. وارد کردن Template از string مدول
  2. یک رشته الگوی معتبر ایجاد کنید
  3. نمونه سازی کنید Template با استفاده از رشته الگو به عنوان آرگومان
  4. تعویض را با استفاده از روش تعویض انجام دهید

در اینجا یک مثال اساسی از روش استفاده از پایتون آورده شده است Template کلاس در کد ما:

>>> from string import Template
>>> temp_str = 'Hi $name, welcome to $site'
>>> temp_obj = Template(temp_str)
>>> temp_obj.substitute(name='John Doe', site='rasanegar.com')
'Hi John Doe, welcome to rasanegar.com'

ما متوجه می شویم که وقتی رشته الگو را می سازیم temp_str، ما از دو مکان نگهدار استفاده می کنیم: $name و $site. این $ علامت جایگزینی واقعی و شناسه ها را انجام می دهد (name و site) برای نگاشت مکان‌گیرها به اشیاء مشخصی که باید در رشته الگو قرار دهیم استفاده می‌شوند.

زمانی که ما از آن استفاده می کنیم، جادو کامل می شود متد ()substitute برای انجام تعویض و ساخت رشته مورد نظر. در فکر substitute() انگار به پایتون می گوییم، این رشته را مرور کنید و اگر پیدا کردید $name، سپس آن را جایگزین کنید John Doe. جستجو را از طریق رشته و اگر شناسه را پیدا کردید ادامه دهید $site، سپس آن را تبدیل کنید rasanegar.com.

نام آرگومان هایی که به آنها می گذریم .substitute() باید با شناسه هایی مطابقت داشته باشد که در محل های نگهدارنده رشته الگوی خود استفاده کرده ایم.

مهمترین تفاوت بین Template و بقیه ابزارهای جایگزینی رشته در پایتون این است که نوع آرگومان در نظر گرفته نشده است. ما می‌توانیم هر نوع شیئی را که می‌تواند به رشته پایتون معتبر تبدیل شود، ارسال کنیم. این Template class به طور خودکار این اشیاء را به رشته تبدیل می کند و سپس آنها را در رشته نهایی قرار می دهد.

اکنون که اصول اولیه را می دانیم روی روش استفاده از پایتون Template کلاس، بیایید به جزئیات اجرای آن بپردازیم تا درک بهتری از روش عملکرد داخلی کلاس داشته باشیم. با این دانش در دست، ما قادر خواهیم بود به طور موثر از کلاس در کد خود استفاده کنیم.

رشته الگو

رشته قالب یک رشته معمولی پایتون است که دارای مکان‌هایی خاص است. همانطور که قبلاً دیدیم، این مکان‌ها با استفاده از a ایجاد می‌شوند $ علامت، همراه با یک شناسه معتبر پایتون. هنگامی که یک رشته الگوی معتبر داریم، مکان‌گیرها را می‌توان با مقادیر خودمان جایگزین کرد تا یک رشته دقیق‌تر ایجاد شود.

مطابق با PEP 292 — جایگزینی ساده تر رشته، قوانین زیر برای استفاده از $ مکان‌دارهای ورود به سیستم:

  1. $$ فرار است؛ با یک واحد جایگزین می شود $
  2. $identifier یک مکان‌نمای جایگزین را نام می‌برد که با کلید نگاشت «شناسه» مطابقت دارد. به‌طور پیش‌فرض، «identifier» باید یک شناسه پایتون را همانطور که در تعریف شده است بنویسد http://docs.python.org/reference/lexical_analysis.html#identifiers-and-keywords. اولین کاراکتر غیر شناسه بعد از $ کاراکتر این مشخصات نگهدارنده مکان را خاتمه می دهد.
  3. ${identifier} برابر است با $identifier. زمانی که نویسه‌های شناسه معتبر از مکان‌نما پیروی می‌کنند اما بخشی از جای‌بان نیستند، لازم است، به عنوان مثال "${noun}ification". (Source)

بیایید چند مثال را کدنویسی کنیم تا بهتر بفهمیم این قوانین چگونه کار می کنند.

ما با مثالی شروع می کنیم که چگونه می توانیم از آن فرار کنیم $ امضا کردن. فرض کنید با ارزها سر و کار داریم و باید علامت دلار را در رشته های به دست آمده داشته باشیم. ما می توانیم دو برابر شود $ برای فرار از خود در رشته الگو به صورت زیر علامت بزنید:

>>> budget = Template('The $time budget for investment is $$$amount')
>>> budget.substitute(time='monthly', amount='1,000.00')
'The monthly budget for investment is $1,000.00'

توجه داشته باشید که نیازی به اضافه کردن و فضای اضافی بین علامت فرار و مکان نگهدار بعدی مانند آنچه در اینجا انجام دادیم وجود ندارد $$$amount. الگوها به اندازه کافی هوشمند هستند که بتوانند از آن فرار کنند $ درست امضا کن

قانون دوم اصول اولیه ساخت یک مکان نگهدار معتبر را در رشته های قالب ما بیان می کند. هر مکان نگهدار باید با استفاده از آن ساخته شود $ کاراکتری که توسط یک شناسه پایتون معتبر به دنبال آن است. به مثال زیر توجه کنید:

>>> template = Template('$what, $who!')
>>> template.substitute(what='Hello', who='World')
'Hello, World!'

در اینجا، هر دو مکان نگهدار با استفاده از شناسه های معتبر پایتون (what و who). همچنین توجه داشته باشید که همانطور که در قانون دوم بیان شد، اولین کاراکتر غیر شناسه مکان نگهدارنده را خاتمه می دهد، همانطور که می بینید $who! جایی که شخصیت ! بخشی از مکان نگهدار نیست، بلکه از رشته نهایی است.

ممکن است شرایطی وجود داشته باشد که لازم باشد تا حدی یک کلمه را در یک رشته جایگزین کنیم. به همین دلیل است که ما گزینه دومی برای ایجاد مکان نگهدار داریم. قانون سوم بیان می کند که ${identifier} برابر است با $identifier و باید زمانی استفاده شود که کاراکترهای شناسه معتبر از مکان‌نما پیروی می‌کنند اما بخشی از خود جای‌بان نیستند.

پیشنهاد می‌کنیم بخوانید:  Python One-Liners برای کمک به نوشتن کدهای ساده و خوانا

بیایید فرض کنیم که ما نیاز به ایجاد خودکار فایل های حاوی اطلاعات تجاری در مورد محصولات شرکت خود داریم. نام فایل ها بر اساس الگویی که شامل کد محصول، نام و دسته تولید است، نامگذاری می شوند که همه آنها با خط زیر از هم جدا شده اند (_) شخصیت. به مثال زیر توجه کنید:

>>> filename_temp = Template('$code_$product_$batch.xlsx')
>>> filename_temp.substitute(code='001', product='Apple_Juice', batch='zx.001.2020')
Traceback (most recent call last):
  ...
KeyError: 'code_'

از آنجا که _ یک کاراکتر شناسه معتبر پایتون است، رشته الگوی ما آنطور که انتظار می رود کار نمی کند و Template الف را بالا می برد KeyError. برای رفع این مشکل، می توانیم از نماد پرانتزی (${identifier}) و متغیرهای خود را به صورت زیر بسازید:

>>> filename_temp = Template('${code}_${product}_$batch.xlsx')
>>> filename_temp.substitute(code='001', product='Apple_Juice', batch='zx.001.2020')
'001_Apple_Juice_zx.001.2020.xlsx'

اکنون قالب به درستی کار می کند! دلیلش این است که بریس ها به درستی شناسه های ما را از هم جدا می کنند _ شخصیت. شایان ذکر است که ما فقط باید از علامت پرانتزی استفاده کنیم code و product و نه برای batch زیرا . شخصیتی که دنبال می شود batch یک کاراکتر شناسه معتبر در پایتون نیست.

در نهایت، رشته الگو در ذخیره می شود template دارایی نمونه بیایید دوباره بررسی کنیم Hello, World! به عنوان مثال، اما این بار ما می خواهیم اصلاح کنیم template کمی:

>>> template = Template('$what, $who!')  
>>> template.template = 'My $what, $who template'  
>>> template.template
'My $what, $who template'
>>> template.substitute(what='Hello', who='World')
'My Hello, World template'

از آنجایی که پایتون دسترسی به ویژگی‌های نمونه را محدود نمی‌کند، می‌توانیم رشته الگوی خود را برای برآورده کردن نیازهایمان هر زمان که بخواهیم تغییر دهیم. با این حال، این یک روش معمول در هنگام استفاده از پایتون نیست Template کلاس

بهتر است نمونه های جدیدی از Template برای هر رشته قالب متفاوتی که در کد خود استفاده می کنیم. به این ترتیب، از برخی باگ‌های ظریف و یافتن سخت مرتبط با استفاده از رشته‌های الگوی نامشخص جلوگیری می‌کنیم.

متد ()substitute

تا کنون، ما از آن استفاده کرده ایم substitute() روش روی آ Template نمونه ای برای انجام تعویض رشته. این روش با استفاده از آرگومان‌های کلمه کلیدی یا با استفاده از نقشه‌برداری حاوی جفت‌های شناسه-مقدار، جای‌بان‌ها را در یک رشته الگو جایگزین می‌کند.

آرگومان‌های کلیدواژه یا شناسه‌های موجود در نگاشت باید با شناسه‌های مورد استفاده برای تعریف مکان‌نماها در رشته الگو مطابقت داشته باشند. مقادیر می توانند هر نوع پایتونی باشند که با موفقیت به رشته تبدیل شوند.

از آنجایی که در مثال‌های قبلی استفاده از آرگومان‌های کلیدواژه را پوشش داده‌ایم، بیایید اکنون تمرکز کنیم روی با استفاده از فرهنگ لغت در اینجا یک مثال است:

>>> template = Template('Hi $name, welcome to $site')
>>> mapping = {'name': 'John Doe', 'site': 'rasanegar.com'}
>>> template.substitute(**mapping)
'Hi John Doe, welcome to rasanegar.com'

وقتی از فرهنگ لغت به عنوان آرگومان با substitute()، باید از عملگر بازگشایی دیکشنری استفاده کنیم: **. این عملگر جفت‌های کلید-مقدار را در آرگومان‌های کلمه کلیدی باز می‌کند که برای جایگزینی جای‌بان‌های منطبق در رشته الگو استفاده می‌شوند.

خطاهای رایج قالب

برخی از خطاهای رایج وجود دارد که می توانیم به طور ناخواسته هنگام استفاده از پایتون به آنها معرفی کنیم Template کلاس

به عنوان مثال، الف KeyError هر زمان که مجموعه ای ناقص از استدلال را به آن ارائه کنیم مطرح می شود substitute(). کد زیر را در نظر بگیرید که از مجموعه ای ناقص از آرگومان ها استفاده می کند:

>>> template = Template('Hi $name, welcome to $site')
>>> template.substitute(name='Jane Doe')
Traceback (most recent call last):
  ...
KeyError: 'site'

اگر زنگ بزنیم substitute() با مجموعه‌ای از آرگومان‌هایی که با همه جای‌بان‌های رشته الگوی ما مطابقت ندارد، یک KeyError.

اگر از یک شناسه پایتون نامعتبر در برخی از متغیرهای خود استفاده کنیم، یک ValueError به ما می گوید که مکان نگهدار نادرست است.

این مثال را در نظر بگیرید که در آن از یک شناسه نامعتبر استفاده می کنیم، $0name به عنوان جانشین به جای $name.

>>> template = Template('Hi $0name, welcome to $site')
>>> template.substitute(name='Jane Doe', site='rasanegar.com')
Traceback (most recent call last):
  ...
ValueError: Invalid placeholder in string: line 1, col 4

تنها زمانی که Template شیء رشته الگو را می خواند تا جایگزینی را انجام دهد که شناسه نامعتبر را کشف کند. بلافاصله الف را بالا می برد ValueError. توجه داشته باشید که 0name یک شناسه یا نام پایتون معتبر نیست زیرا با یک رقم شروع می شود.

روش safe_substitute()

پایتون Template کلاس متد دومی دارد که می‌توانیم از آن برای تعویض رشته استفاده کنیم. روش نامیده می شود safe_substitute(). به طور مشابه کار می کند substitute() اما وقتی از یک مجموعه آرگومان ناقص یا غیر منطبق استفاده می کنیم، متد a بالا نمی رود KeyError.

در این حالت، مکان‌نمای مفقود یا غیر منطبق در رشته نهایی بدون تغییر ظاهر می‌شود.

در اینجا چگونگی آن است safe_substitute() با استفاده از مجموعه ای ناقص از آرگومان ها کار می کند (site گم می شود):

>>> template = Template('Hi $name, welcome to $site')
>>> template.safe_substitute(name='John Doe')
'Hi John Doe, welcome to $site'

در اینجا، ما مشت تماس می گیریم safe_substitute() با استفاده از مجموعه ای ناقص از آرگومان ها رشته به دست آمده حاوی محل نگهدارنده اصلی است $site، اما نه KeyError ظهور کرده.

سفارشی کردن کلاس قالب پایتون

پایتون Template کلاس برای زیر کلاس بندی و سفارشی سازی طراحی شده است. این به ما امکان می دهد تا الگوهای عبارت منظم و سایر ویژگی های کلاس را برای برآوردن نیازهای خاص خود تغییر دهیم.

در این بخش، روش سفارشی سازی برخی از مهم ترین ویژگی های کلاس و چگونگی تأثیر آن بر رفتار عمومی ما را پوشش خواهیم داد. Template اشیاء. بیایید با ویژگی class شروع کنیم .delimiter.

استفاده از جداکننده متفاوت

ویژگی کلاس delimiter کاراکتر مورد استفاده را به عنوان کاراکتر شروع مکان‌دار نگه می‌دارد. همانطور که تا کنون دیده ایم، مقدار پیش فرض آن است $.

از زمان پایتون Template کلاس برای وراثت طراحی شده است، ما می توانیم زیر کلاس Template و مقدار پیش فرض را تغییر دهید delimiter با نادیده گرفتن آن. به مثال زیر نگاهی بیندازید که در آن جداکننده را برای استفاده لغو می کنیم # بجای $:

from string import Template
class MyTemplate(Template):
    delimiter = '#'

template = MyTemplate('Hi #name, welcome to #site')
print(template.substitute(name='Jane Doe', site='rasanegar.com'))





tag = MyTemplate('This is a Twitter hashtag: ###hashtag')
print(tag.substitute(hashtag='Python'))



ما می توانیم از خود استفاده کنیم MyTemplate کلاس درست مثل ما از پایتون معمولی استفاده می کنیم Template کلاس با این حال، اکنون باید استفاده کنیم # بجای $ برای ایجاد مکان‌دارهای خود این می تواند مفید باشد زمانی که ما با رشته هایی کار می کنیم که نشانه های دلار زیادی را کنترل می کنند، به عنوان مثال، زمانی که با ارزها سروکار داریم.

توجه داشته باشید: انجام دادن نه جایگزین a delimiter با یک بیان منظم کلاس الگو به طور خودکار از جداکننده فرار می کند. بنابراین، اگر از یک عبارت منظم as استفاده کنیم delimiter بسیار محتمل است که سفارش ما Template درست کار نخواهد کرد

پیشنهاد می‌کنیم بخوانید:  عبارت Break Python – چگونه از یک حلقه For در پایتون خارج شویم

تغییر آنچه به عنوان یک شناسه واجد شرایط است

این idpattern صفت class یک عبارت منظم را در خود دارد که برای اعتبار بخشی به نیمه دوم یک مکان نگهدار در یک رشته الگو استفاده می شود. به عبارت دیگر، idpattern تأیید می کند که شناسه هایی که ما در مکان نگهدارنده های خود استفاده می کنیم، شناسه های معتبر پایتون هستند. مقدار پیش فرض از idpattern است r'(?-i:(_a-zA-Z)(_a-zA-Z0-9)*)'.

ما می توانیم زیر کلاس Template و از الگوی عبارت منظم خودمان استفاده کنیم idpattern. فرض کنید که باید شناسه‌ها را به نام‌هایی محدود کنیم که هیچ‌یک از آنها زیرخط ندارند (_) و نه ارقام ((0-9)). برای انجام این کار، می توانیم لغو کنیم idpattern و این کاراکترها را به صورت زیر از الگو حذف کنید:

from string import Template
class MyTemplate(Template):
    idpattern = r'(?-i:(a-zA-Z)(a-zA-Z)*)'


template = MyTemplate('$name_underscore not allowed')
print(template.substitute(name_underscore='Jane Doe'))

اگر این کد را اجرا کنیم با این خطا مواجه خواهیم شد:

Traceback (most recent call last):
    ...
KeyError: 'name'

می توانیم تأیید کنیم که ارقام نیز مجاز نیستند:

template = MyTemplate('$python3 digits not allowed')
print(template.substitute(python3='Python version 3.x'))

خطا خواهد بود:

Traceback (most recent call last):
    ...
KeyError: 'python'

از آنجایی که خط و اعداد در سفارش ما گنجانده نشده است idpattern، Template شی قانون دوم را اعمال می کند و پس از آن، مکان نگهدارنده را با اولین کاراکتر غیر شناسه می شکند $. به همین دلیل است که ما یک KeyError در هر مورد.

ساخت زیر کلاس های الگوی پیشرفته

ممکن است شرایطی وجود داشته باشد که باید رفتار پایتون را اصلاح کنیم Template کلاس، اما مهم است delimiter، idpattern، یا هر دو کافی نیست. در این موارد، می‌توانیم جلوتر برویم و آن را نادیده بگیریم pattern ویژگی class برای تعریف یک عبارت منظم کاملاً جدید برای سفارشی ما Template زیر کلاس ها

اگر تصمیم دارید از یک عبارت منظم کاملا جدید برای pattern، سپس باید یک عبارت منظم با چهار گروه نامگذاری شده ارائه دهید:

  1. escaped با توالی فرار برای جداکننده مطابقت دارد، مانند in $$
  2. named با جداکننده و یک شناسه معتبر پایتون مطابقت دارد، مانند in $identifier
  3. braced منطبق بر جداکننده و یک شناسه معتبر پایتون با استفاده از بریس‌ها، مانند in ${identifier}
  4. invalid منطبق با سایر جداکننده های بد شکل، مانند in $0site

این pattern ویژگی یک شی عبارت منظم کامپایل شده را نگه می دارد. با این حال، این امکان وجود دارد که رشته عبارت منظم اصلی را با دسترسی به آن بررسی کنید pattern ویژگی از pattern ویژگی. کد زیر را بررسی کنید:

>>> template = Template('$name')
>>> print(template.pattern.pattern)
\$(?:
    (?P<escaped>\$) |   
    (?P<named>(?-i:(_a-zA-Z)(_a-zA-Z0-9)*))      |   
    {(?P<braced>(?-i:(_a-zA-Z)(_a-zA-Z0-9)*))}   |   
    (?P<invalid>)              
  )

این کد رشته پیش فرض مورد استفاده برای کامپایل را خروجی می دهد pattern ویژگی کلاس در این حالت، می‌توانیم به وضوح چهار گروه نام‌گذاری شده را ببینیم که با عبارت منظم پیش‌فرض مطابقت دارند. همانطور که قبلا گفته شد، اگر ما نیاز به شخصی سازی عمیق رفتار داشته باشیم Template، سپس باید همین چهار گروه نامگذاری شده را به همراه عبارات منظم خاص برای هر گروه ارائه دهیم.

اجرای کد با eval() و exec()

توجه داشته باشید: توابع داخلی eval() و exec() هنگامی که با ورودی مخرب استفاده می شود، می تواند پیامدهای امنیتی مهمی داشته باشد. با احتیاط استفاده کنید!

این بخش آخر برای باز کردن چشمان شما در نظر گرفته شده است روی چقدر پایتون قدرتمند است Template کلاس می تواند باشد اگر از آن به همراه برخی از توابع داخلی پایتون مانند eval() و exec().

این eval() تابع یک عبارت پایتون را اجرا می کند و نتیجه آن را برمی گرداند. این exec() تابع یک عبارت پایتون را نیز اجرا می کند، اما هرگز مقدار آن را بر نمی گرداند. شما معمولا استفاده می کنید exec() زمانی که فقط به اثرات جانبی یک عبارت علاقه دارید، مثلاً یک مقدار متغیر تغییر یافته.

مثال‌هایی که می‌خواهیم پوشش دهیم ممکن است تا حدودی غیر متعارف به نظر برسند، اما ما مطمئن هستیم که می‌توانید موارد استفاده جالبی را برای این ترکیب قدرتمند از ابزارهای پایتون پیدا کنید. آنها بینشی در مورد روش عملکرد ابزارهایی که کد پایتون را تولید می کنند، می دهند!

برای مثال اول، ما قصد داریم از یک الگو به همراه استفاده کنیم eval() برای ایجاد پویا لیست ها از طریق درک لیست:

>>> template = Template('($exp for item in $coll)')
>>> eval(template.substitute(exp='item ** 2', coll='(1, 2, 3, 4)'))
(1, 4, 9, 16)
>>> eval(template.substitute(exp='2 ** item', coll='(3, 4, 5, 6, 7, 8)'))
(8, 16, 32, 64, 128, 256)
>>> import math
>>> eval(template.substitute(expression='math.sqrt(item)', collection='(9, 16, 25)'))
(3.0, 4.0, 5.0)

شی الگوی ما در این مثال، نحو اصلی یک لیست را در اختیار دارد. با شروع این الگو، می‌توانیم به‌طور پویا لیست‌ها را با جایگزین کردن متغیرهای مکان با عبارات معتبر ایجاد کنیم (exp) و مجموعه ها (coll). در مرحله آخر، درک مطلب را با استفاده از آن اجرا می کنیم eval().

از آنجایی که محدودیتی وجود ندارد روی رشته های قالب ما چقدر می توانند پیچیده باشند، می توان رشته های قالبی را ایجاد کرد که هر قطعه کد پایتون را در خود جای دهد. بیایید مثال زیر را در مورد روش استفاده از a در نظر بگیریم Template شی برای ایجاد کل کلاس:

from string import Template

_class_template = """
class ${klass}:
    def __init__(self, name):
        self.name = name

    def ${method}(self):
        print('Hi', self.name + ',', 'welcome to', '$site')
"""

template = Template(_class_template)
exec(template.substitute(klass='MyClass',
                         method='greet',
                         site='rasanegar.com'))

obj = MyClass("John Doe")
obj.greet()

در اینجا، ما یک رشته الگو برای نگهداری یک کلاس پایتون کاملاً کاربردی ایجاد می کنیم. بعداً می‌توانیم از این الگو برای ایجاد کلاس‌های مختلف استفاده کنیم، اما با توجه به نیاز خود از نام‌های مختلف استفاده کنیم.

در این مورد، exec() کلاس واقعی را ایجاد می کند و آن را به فضای نام فعلی ما می آورد. از این نقطه روی، می توانیم آزادانه از کلاس مانند هر کلاس پایتون معمولی استفاده کنیم.

اگرچه این مثال‌ها نسبتاً ابتدایی هستند، اما نشان می‌دهند که پایتون چقدر قدرتمند است Template کلاس می تواند باشد و چگونه می توانیم از آن برای حل مسائل برنامه نویسی پیچیده در پایتون استفاده کنیم.

نتیجه

پایتون Template کلاس برای جایگزینی رشته یا درون یابی رشته در نظر گرفته شده است. کلاس با استفاده از عبارات منظم کار می کند و یک رابط کاربر پسند و قدرتمند ارائه می دهد. وقتی صحبت از ایجاد الگوهای پیچیده مبتنی بر رشته می‌شود، این یک جایگزین مناسب برای گزینه‌های جایگزین رشته داخلی است.

در این مقاله روش پایتون را یاد گرفتیم Template کارهای کلاسی ما همچنین در مورد خطاهای رایج تری که می توانیم هنگام استفاده معرفی کنیم آشنا شدیم Template و روش کار در اطراف آنها در نهایت روش سفارشی سازی کلاس از طریق زیر کلاسینگ و روش استفاده از آن برای اجرای کد پایتون را توضیح دادیم.

با این دانش در دست، ما در شرایط بهتری برای استفاده موثر از پایتون هستیم Template کلاس برای انجام درون یابی یا جایگزینی رشته در کد ما.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-18 06:36:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید