با یک اسکریپت پایتون و با استفاده از re.findall، هدر (خط‌های تعریف) توابع را از یک فایل پایتون بخوان و نام همه توابع را استخراج و در لیستی چاپ کن.

1.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:10

0.0

فایل را با open بخوانید و متن را به re.findall بدهید. از یک الگوی خام مثل r'^\s*def\s+([A-Za-z_]\w*)\s*\(' به همراه پرچم re.MULTILINE استفاده کنید تا نام تابع‌ها (گروه اول) از ابتدای خطوط استخراج شود. این روش ساده برای اسکریپت‌نویسی و ابزارهای تحلیلی/کامپایلر-مانند مفید است؛ از raw string برای الگو و با بلوک with برای باز کردن فایل استفاده کنید و توجه داشته باشید که دکوراتورها و تعاریف چندخطی ممکن است نیاز به پردازش اضافی داشته باشند.

توسط پژوهشگر در 220 روز قبل ساعت 02:10
دسته بندی ها: Python Python for beginner
arash در 220 روز قبل ساعت 10:44

خوبه که از الگوی خام r'^\s*def\s+([A-Za-z_]\w*)\s*\(' با پرچم re.MULTILINE استفاده کنید تا نام توابع از ابتدای خطوط استخراج شود. این روش توابع با def معمولی را شناسایی می‌کند اما async def را پیدا نمی‌کند؛ برای پشتیبانی از async می‌توانید الگو را به (?:async\s+)?def تغییر دهید. decorators قبل از def تاثیری روی استخراج ندارد و توابع داخل کلاس یا توابع تو در تو را هم تا حدی می‌گیرد، اما تعاریف چندخطی ممکن است به پردازش اضافی نیاز داشته باشد. بعد از استخراج می‌توانید نام‌ها را در یک مجموعه یا فهرست مرتب چاپ کنید و برای صحت، نتیجه را با یک تحلیلگر AST مقایسه کنید.

گزارش

1 پاسخ

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

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