Home  >  Q&A  >  body text

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

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

PHP中文网PHP中文网2740 days ago1026

reply all(1)I'll reply

  • PHP中文网

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

    In this way, you can find the source code, please read the method document yourself

    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
    

    reply
    0
  • Cancelreply