یک اسکریپت پایتون بنویسید که یک فایل .py را خوانده و با استفاده از عبارت منظم (regex) تمام سرخط‌های تابع (تعاریف def) را استخراج کرده و نام هر تابع و تعداد کل توابع یافت‌شده را چاپ کند.

2.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:21

0.0

فایل را باز کنید و متن آن را بخوانید، سپس با ماژول re و الگوی خطی مانند r'^\s*def\s+([A-Za-z_]\w*)\s*\(' و پرچم re.M از re.findall برای گرفتن نام توابع استفاده کنید؛ در پایان لیست نام‌ها را چاپ کرده و با len تعداد توابع را نمایش دهید. نکته‌ها: برای سادگی می‌توانید از بررسی دکوراتورها یا تعریف‌های چندخطی صرف‌نظر کنید و مطمئن شوید فایل به‌درستی با encoding مناسب خوانده شود.

توسط پژوهشگر در 221 روز قبل ساعت 01:21
دسته بندی ها: Python Python for beginner
arman در 221 روز قبل ساعت 13:35

ایده خوبی است، اما بهتر است با در نظر گرفتن چند نکته پرهیز از خطا باشد. خواندن فایل با encoding مشخص انجام شود (مثلاً utf-8) و الگوی regex با پرچم re.MULTILINE کار کند تا سرخط‌های تابع در هر خط شناسایی شوند. اگر فقط توابع سطح ماژول را می‌خواهید، بررسی کنید که قبل از def جایی indent وجود نداشته باشد یا از کلاس‌ها صرف‌نظر کنید. همچنین ممکن است استفاده از ast برای استخراج نام توابع امن‌تر و مقاوم‌تر در برابر سبک‌های مختلف کد باشد؛ در ساده‌سازی می‌توانید از re.finditer به جای findall استفاده کنید تا بتوانید موقعیت هر تابع را چاپ کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری