搜索

首页  >  问答  >  正文

python - tornado中使用parse_command_line(final=False) 没能理解final是做什么的

大概知道parse_command_line是用来解析命令行的,但是不理解里面的final参数是作什么的。顺便咨询一下学习tonardo的学习资源(知道官方文档是最好的)和书籍

PHP中文网PHP中文网2781 天前1056

全部回复(1)我来回复

  • PHP中文网

    PHP中文网2017-04-18 10:23:21

    通过这样,找到源代码,请自己看方法文档

    If final is False, parse callbacks will not be run.

    This is useful for applications that wish to combine configurations
    from multiple sources.
    

    def parse_command_line(self, args=None, final=True):
            """Parses all options given on the command line (defaults to
            `sys.argv`).
    
            Note that ``args[0]`` is ignored since it is the program name
            in `sys.argv`.
    
            We return a list of all arguments that are not parsed as options.
    
            If ``final`` is ``False``, parse callbacks will not be run.
            This is useful for applications that wish to combine configurations
            from multiple sources.
            """
            if args is None:
                args = sys.argv
            remaining = []
            for i in range(1, len(args)):
                # All things after the last option are command line arguments
                if not args[i].startswith("-"):
                    remaining = args[i:]
                    break
                if args[i] == "--":
                    remaining = args[i + 1:]
                    break
                arg = args[i].lstrip("-")
                name, equals, value = arg.partition("=")
                name = self._normalize_name(name)
                if name not in self._options:
                    self.print_help()
                    raise Error('Unrecognized command line option: %r' % name)
                option = self._options[name]
                if not equals:
                    if option.type == bool:
                        value = "true"
                    else:
                        raise Error('Option %r requires a value' % name)
                option.parse(value)
    
            if final:
                self.run_parse_callbacks()
    
            return remaining
    

    回复
    0
  • 取消回复