یک اسکریپت پایتون بنویسید که با استفاده از re.search هدرهای توابع در یک فایل کد پایتون را پیدا کند و نام تابع و تعداد پارامترهای آن را چاپ کند.

7.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:15

0.0

برای حل این مسئله فایل کد را خط‌به‌خط بخوانید و با استفاده از ماژول re و الگوی مناسب (مثلاً r'^\s*def\s+(\w+)\s*\(([^)]*)\)') دنبال هدرهای تابع بگردید، سپس با گرفتن گروه‌ها نام تابع و رشته پارامترها را استخراج کنید. برای شمارش پارامترها رشته پارامتر را بر اساس ',' تقسیم کنید و المان‌های خالی یا فقط فاصله را نادیده بگیرید؛ می‌توانید پارامتر 'self' را در صورت نیاز حذف کنید؛ از re.search برای هر خط استفاده کنید و خروجی را به صورت نام تابع — تعداد پارامتر چاپ کنید.

توسط پژوهشگر در 201 روز قبل ساعت 03:15
دسته بندی ها: Python Python for beginner
nima در 201 روز قبل ساعت 07:02

نکته کلیدی این است که هدرهای توابع ممکن است روی چند خط نوشته شوند یا با دکوریتور آغاز شوند، بنابراین یافتن تنها با خط به خط می‌تواند ناقص باشد. الگوی r'^\s*def\s+(\w+)\s*\(([^)]*)\)' برای خطوط تک‌خطی کار می‌کند، اما برای توابع چندخطی باید کل فایل را بخوانید یا از پرچم‌های مناسب استفاده کنید تا پارامترها را داخل پرانتز جمع‌آوری کنید. پس از استخراج رشتهٔ پارامترها، آنها را با تقسیم بر ',' بشمارید و المان‌های خالی را فیلتر کنید؛ در صورت نیاز می‌توانید 'self' را از پارامترها حذف کنید. برای دقت و پایداری بالاتر در پروژه‌های واقعی، استفاده از ماژول ast به‌عنوان جایگزینِ regex را پیشنهاد می‌کنم.

گزارش

1 پاسخ

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

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