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

1.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 03:06

0.0

فایل را با پایتون باز کرده یا کل محتوا را بخوانید و از ماژول re برای پیدا کردن الگوهای خطی استفاده کنید؛ برای توابع الگوی ساده‌ای مانند r'^\s*def\s+([A-Za-z_]\w*)\s*\((.*?)\)\s*:' و برای کلاس‌ها r'^\s*class\s+([A-Za-z_]\w*)(?:\s*\((.*?)\))?\s*:' با گزینه re.MULTILINE مناسب است تا نام و لیست پارامترها را با گروه‌ها بگیرید و چاپ کنید. نکته: این راه حل برای حالت‌های چندخطی یا ساختارهای پیچیده محدود است — برای دقت بیشتر می‌توانید از ماژول ast پایتون برای تجزیهٔ واقعی کد استفاده کنید.

توسط پژوهشگر در 202 روز قبل ساعت 03:06
دسته بندی ها: Python Python for beginner
arash در 202 روز قبل ساعت 07:32

برای استخراج نام توابع و کلاس‌ها با regexهای پیشنهادی، به این نکته توجه کنید که این روش در برابر توابع چندخطی، دکوریتورها و ساختارهای پیچیده کم‌دقت است. برای دقت واقعی‌تر، استفاده از ماژول ast پایتون برای تجزیهٔ کد و استخراج نام‌ها و پارامترهای تابع و کلاس پیشنهاد می‌شود. اگر همچنان می‌خواهید از regex استفاده کنید، از پرچم re.MULTILINE و الگوهای سادهٔ def و class با گروه‌بندی مناسب استفاده کنید و به مواردی مانند پارامترهای پیش‌فرض و ساختارهای پیچیده توجه کنید. همچنین هنگام بازخوانی فایل، با باز کردن با encoding مناسب مانند utf-8 و خواندن محتوا یا استفاده از ast.parse روی متن از خطاهای رمزگذاری و فرمت جلوگیری کنید.

گزارش

1 پاسخ

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

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