GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • آموزش Argparse
  • optparse --- پارسر گزینه‌های خط فرمان
  • گزارش یک اشکال
  • بهبود این صفحه
  • نمایش منبع
  • نمایش منبع ترجمه
  • اندیس
  • ماژول‌ها
  • Python
  • 3.15.2 documentation
  • کتابخانه‌ی استاندارد پایتون
  • کتابخانه‌های رابط خط فرمان
  • مهاجرت کد optparse به argparse

This view

  • Original page
  • New address

GeezerVison is showing python.github.io — مهاجرت کد optparse به argparse

مهاجرت کد optparse به argparse¶

ماژول argparse چندین قابلیت سطح بالاتر ارائه می‌دهد که به‌صورت ذاتی توسط ماژول optparse ارائه نمی‌شوند، از جمله:

  • مدیریت آرگومان‌های جایگاهی.

  • پشتیبانی از زیردستورها.

  • اجازه دادن به پیشوندهای جایگزین گزینه مانند + و /.

  • مدیریت آرگومان‌هایی با سبک صفر-یا-بیشتر و یک-یا-بیشتر.

  • تولید پیام‌های کاربرد آگاه‌کننده‌تر.

  • فراهم کردن رابطی بسیار ساده‌تر برای type و action سفارشی.

در ابتدا، ماژول argparse تلاش می‌کرد سازگاری با optparse را حفظ کند. با این حال، تفاوت‌های بنیادین طراحی میان پشتیبانی از پردازش گزینه‌های خط فرمان به‌صورت اعلانی (در حالی که پردازش آرگومان‌های جایگاهی به کد برنامه واگذار شده است)، و پشتیبانی از گزینه‌های نام‌دار و همچنین آرگومان‌های جایگاهی در رابط اعلانی به این معناست که API به‌مرور زمان از optparse فاصله گرفته است.

همان‌طور که در انتخاب یک کتابخانه تجزیه آرگومان توضیح داده شده است، برنامه‌هایی که در حال حاضر از optparse استفاده می‌کنند و از روش کار آن رضایت دارند، می‌توانند صرفاً به استفاده از optparse ادامه دهند.

توسعه‌دهندگان برنامه‌های کاربردی که مهاجرت را مدنظر دارند، باید پیش از تصمیم‌گیری درباره‌ی اینکه آیا مهاجرت مطلوب است یا خیر، فهرست تفاوت‌های رفتاری ذاتی توصیف‌شده در آن بخش را نیز بررسی کنند.

برای برنامه‌هایی که مهاجرت از optparse به argparse را انتخاب می‌کنند، پیشنهادهای زیر باید مفید باشد:

  • تمام فراخوانی‌های optparse.OptionParser.add_option() را با فراخوانی‌های ArgumentParser.add_argument() جایگزین کنید.

  • (options, args) = parser.parse_args() را با args = parser.parse_args() جایگزین کنید و فراخوانی‌های بیشتری از ArgumentParser.add_argument() را برای آرگومان‌های جایگاهی اضافه کنید. به خاطر داشته باشید که آنچه پیش‌تر options نامیده می‌شد، اکنون در زمینه‌ی argparse، args نامیده می‌شود.

  • برای جایگزینی optparse.OptionParser.disable_interspersed_args()، به‌جای parse_args() از parse_intermixed_args() استفاده کنید.

  • کنش‌های کال‌بک و آرگومان‌های کلیدواژه‌ای callback_* را با آرگومان‌های type یا action جایگزین کنید.

  • نام‌های رشته‌ای برای آرگومان‌های کلیدواژه‌ای type را با اشیای نوع متناظر جایگزین کنید (مثلاً int، float، complex و غیره).

  • optparse.Values را با Namespace، و optparse.OptionError و optparse.OptionValueError را با ArgumentError جایگزین کنید.

  • رشته‌های دارای آرگومان‌های ضمنی مانند %default یا %prog را با سینتکس استاندارد پایتون برای استفاده از دیکشنری‌ها جهت قالب‌بندی رشته‌ها، یعنی %(default)s و %(prog)s، جایگزین کنید.

  • آرگومان version سازنده‌ی OptionParser را با فراخوانی parser.add_argument('--version', action='version', version='<the version>') جایگزین کنید.

© حق نشر 2001 Python Software Foundation.
این صفحه تحت مجوز بنیاد نرم‌افزار پایتون نسخه ۲ منتشر شده است.
مثال‌ها، دستورالعمل‌ها، و سایر کدهای موجود در مستندات همچنین تحت مجوز بدون بند BSD منتشر شده‌اند.
برای اطلاعات بیشتر به تاریخچه و مجوز مراجعه کنید.

بنیاد نرم‌افزار پایتون یک شرکت غیرانتفاعی است. لطفاً کمک مالی کنید.

آخرین به‌روزرسانی در نوامبر 12, 2026 (06:19 UTC). آیا اشکالی یافتید؟
ساخته شده با Sphinx 9.1.0.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.