я попал в такую интересную ошибку:Optparse с целочисленным аргументом
parser.add_option("-n", "--number", metavar="NUMBER", type="int",
help="number is NUMBER")
(options, args) = parser.parse_args()
if options.number: # User added a number
do something
exit(0)
Через некоторое время я узнал, что мое приложение не работает, если число 0
, но это должно быть действительным числом (оно должно быть> = 0). Проблема в том, что 0
- False
.
я должен изменить его на:
if options.number is not None:
или что-то более сложного?
Это изменяет работу? –
@MarceloCantos Да, я прошу, потому что приложение может выглядеть непрофессионально. – xralf
Я сохранил распечатку из старой работы для потомков. Требуется несколько сотен строк над несколькими функциями (не говоря уже о двух или трех диаграммах рабочих процессов), чтобы сравнить две даты и поднять ошибку, если она предшествует другой. Понятие «непрофессиональный» (или «сложный») никогда не должно входить в него. Используйте простейшую вещь, которая работает, период. Обратите внимание, что я не критикую вопрос; это разумный вопрос. Но когда кто-то еще беспокоится, что их код недостаточно сложный, я нервничаю. –