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