代码之家  ›  专栏  ›  技术社区  ›  user977828

ArgParse参数值不可访问

  •  0
  • user977828  · 技术社区  · 5 年前

    ArgParse opt2 具有以下代码的值

    using ArgParse
    function parse_commandline()
        s = ArgParseSettings()
        @add_arg_table s begin
            "--opt2"
                help = "another option with an argument"
                arg_type = Int
                default = 0
                required = true
        end
        return parse_args(s)
    end
    
    @show parsed_args = parse_commandline()
        println("Parsed args:")
        for (arg,val) in parsed_args
            print("  $arg  =>  ")
            show(val)
            println()
        end
        println(opt2)
    
    
    
    $ julia test.jl --opt2 7
    parsed_args = parse_commandline() = Dict{String,Any}("opt2" => 7)
    Parsed args:
      opt2  =>  7
    ERROR: LoadError: UndefVarError: opt2 not defined
    Stacktrace:
     [1] top-level scope at /Users/lorencm/projects/bioinf-scripts-julia/test.jl:72
     [2] include at ./boot.jl:328 [inlined]
     [3] include_relative(::Module, ::String) at ./loading.jl:1105
     [4] include(::Module, ::String) at ./Base.jl:31
     [5] exec_options(::Base.JLOptions) at ./client.jl:287
     [6] _start() at ./client.jl:460
    in expression starting at /Users/lorencm/projects/bioinf-scripts-julia/test.jl:72
    

    提前谢谢你

    1 回复  |  直到 5 年前
        1
  •  1
  •   varelabuilds StefanKarpinski    5 年前

    opt2 不是变量名。你必须把钥匙 parsed_args 字典:

    julia> parsed_args["opt2"]
    7