Có cách nào để làm cho trình tối ưu hóa của Python in giá trị mặc định của tùy chọn hoặc cờ khi hiển thị trợ giúp với --help không?Liệu sự phân biệt của Python có thể hiển thị giá trị mặc định của một tùy chọn không?
Trả lời
Hãy thử sử dụng %default
chuỗi giữ chỗ:
# This example taken from http://docs.python.org/library/optparse.html#generating-help
parser.add_option("-m", "--mode",
default="intermediate",
help="interaction mode: novice, intermediate, "
"or expert [default: %default]")
Và nếu bạn cần truy cập chương trình đối với các giá trị mặc định, bạn có thể nhận được với họ thông qua defaults
thuộc tính của bộ phân tích (đó là một dict)
Và nếu bạn muốn tự động thêm giá trị mặc định vào tất cả các tùy chọn mà bạn đã chỉ định, bạn có thể thực hiện như sau:
for option in parser.option_list:
if option.default != ("NO", "DEFAULT"):
option.help += (" " if option.help else "") + "[default: %default]"
Đồng các câu hỏi cho câu hỏi của bạn đã cho biết có một cách khác để phân tích đối số được gọi là argparse. Nó được giới thiệu trong Python 3.2. Nó thực sự không dùng optparse
nhưng được sử dụng tương tự.
argpass
đi kèm với các lớp định dạng khác nhau và ví dụ argparse.ArgumentDefaultsHelpFormatter
cũng sẽ in các giá trị mặc định mà không cần phải thao tác chuỗi trợ giúp theo cách thủ công.
Đối tượngParser cho phép định dạng trợ giúp được tùy chỉnh bằng cách chỉ định một lớp định dạng thay thế. Hiện nay, có bốn lớp như:
lớp argparse.RawDescriptionHelpFormatter
lớp argparse.RawTextHelpFormatter
lớp argparse.ArgumentDefaultsHelpFormatter
lớp argparse.MetavarTypeHelpFormatter
Một ví dụ từ tài liệu trăn:
>>> parser = argparse.ArgumentParser(
... prog='PROG',
... formatter_class=argparse.ArgumentDefaultsHelpFormatter)
>>> parser.add_argument('--foo', type=int, default=42, help='FOO!')
>>> parser.add_argument('bar', nargs='*', default=[1, 2, 3], help='BAR!')
>>> parser.print_help()
usage: PROG [-h] [--foo FOO] [bar [bar ...]]
positional arguments:
bar BAR! (default: [1, 2, 3])
optional arguments:
-h, --help show this help message and exit
--foo FOO FOO! (default: 42)
Thêm argparse.ArgumentDefaultsHelpFormatter để phân tích cú pháp
import argparse
parser = argparse.ArgumentParser(
description='Your application description',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
của bạn từ tài liệu:
ArgumentDefaultsHelpFormatter tự động thêm thông tin về giá trị mặc định cho mỗi thông điệp luận giúp đỡ: Blockquote
- 1. Nhà dữ liệu HTML5 có thể phân biệt giá trị và văn bản tùy chọn không?
- 2. Giá trị mặc định của tùy chọn Android
- 3. Hiển thị giá trị điểm theo mặc định trên ZedGraph
- 4. Knockout.js đặt lại giá trị của một lựa chọn về giá trị mặc định của nó
- 5. Giá trị mặc định ListPreference không hiển thị
- 6. Có thể chỉ hiển thị giá trị trong "biến hiển thị" của MySQL không?
- 7. Hiển thị giá trị mặc định trong Spinner trong android
- 8. Có thể một tham số không có tên của hàm có giá trị mặc định không?
- 9. giá trị Thay đổi hộp chọn của "hiển thị 10 mục" của jquery DataTable
- 10. Truyền một mảng trống làm giá trị mặc định của tham số tùy chọn
- 11. Nhận phản ánh giá trị của thuộc tính có getter có giá trị tùy chọn
- 12. Python optparse, giá trị mặc định, và các tùy chọn rõ ràng
- 13. Django: Hiển thị giá trị của trường được chọn nhiều lựa chọn trong một mẫu
- 14. Không thể sử dụng String.Empty làm giá trị mặc định cho thông số tùy chọn
- 15. XML Tuần tự hóa các giá trị mặc định của các thuộc tính tùy chọn
- 16. Sử dụng thẻ tùy chọn Spring để hiển thị giá trị toString của enum
- 17. Giá trị CSS mặc định của IE
- 18. Cách sửa đổi kiểu dữ liệu của một cột có giá trị mặc định
- 19. Giá trị mặc định của loại động?
- 20. Bạn có thể thay đổi giá trị mặc định của thuộc tính nillable trong JAXB không?
- 21. chọn nhiều, đặt giá trị mặc định đã chọn
- 22. Giá trị mặc định của BOOL
- 23. Hiển thị cấu trúc phân cấp của "TÙY CHỌN" trong thẻ "CHỌN"
- 24. NSPredicateEditor & NSExpression - Có thể hiển thị khác với giá trị của biến vị ngữ không?
- 25. Giá trị phân biệt đối xử không xác định 'MyEvent'
- 26. Mặc định mặc định của Python so với mặc định của hàm
- 27. Giá trị mặc định của thuộc tính lớp GORM giá trị mặc định
- 28. Select2 không hiển thị giá trị đã chọn
- 29. Có thể định vị dữ liệu Highcharts dataLabels tùy thuộc vào giá trị không?
- 30. jQuery - đặt giá trị của một lựa chọn thành một trong các tùy chọn của nó
Xem SO này: http://stackoverflow.com/questions/12151306/argparse-way-to-include-default-values-in-help –
Nếu ai đó tìm kiếm tương tự cho Argparse: [Argparse: Cách bao gồm giá trị mặc định trong '--help'?] (http://stackoverflow.com/a/12151325/562769) –