python optparse模块中带回调的pb

python optparse模块中带回调的pb,python,callback,optparse,Python,Callback,Optparse,我正在使用Python2.6及其optparse模块。我想通过回调将一个参数转换为datetime,但失败了 代码如下: def parsedate(option, opt_str, value, parser): option.date = datetime.strptime(value, "%Y/%m/%d") def parse_options(args): parser = OptionParser(usage="%prog -l LOGFOLDER [-e]", ve

我正在使用Python2.6及其optparse模块。我想通过回调将一个参数转换为datetime,但失败了

代码如下:

def parsedate(option, opt_str, value, parser):
    option.date = datetime.strptime(value, "%Y/%m/%d")

def parse_options(args):
    parser = OptionParser(usage="%prog -l LOGFOLDER [-e]", version="%prog 1.0")
    parser.add_option("-d", "--date", action="callback", callback="parsedate", dest="date")  
    global options
    (options, args) = parser.parse_args(args)
    print options.date.strftime()

if __name__ == "__main__":
        parse_options(sys.argv[1:])
我在_check_callback“callback not callable”中得到一个错误
文件:optparse.py。我猜我在定义回调的方式上做错了什么,但是什么呢?为什么?有人能帮忙吗

更新:正如我在评论中所说,我认为在命令行脚本的选项中设置日期时间的最佳方法是按照

下面的课程可以很好地实现这一点:

from copy import copy
from optparse import Option, OptionValueError
from datetime import datetime

def check_date(option, opt, value):
    try:
        return datetime.strptime(value, "%Y/%m/%d")
    except ValueError:
        raise OptionValueError(
            "option %s: invalid date value: %r. Should have a format like \"YYYY/MM/DD\"" % (opt, value))

class dateOption (Option):
    TYPES = Option.TYPES + ("date",)
    TYPE_CHECKER = copy(Option.TYPE_CHECKER)
    TYPE_CHECKER["date"] = check_date

无论如何,非常感谢你的帮助

在引号中有parsedate。不应该这样。

无论如何,非常感谢。。。但实际上我想知道我是否有好的策略。我想知道我是否不需要扩展这个选项