如何使用add_argument函数中的空格访问argparse中的变量?

时间:2018-10-25 23:14:59

标签: python python-3.x argparse

<!DOCTYPE html>
<html>
<head>
    <title>My Mobile Application</title>

    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile.structure-1.4.5.min.css"/>
    <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
    <script src="js/scripts.js"></script>

    <style>
    body{
        background: url(images/background.png) no-repeat center center fixed;
        -webkit-background-size: cover;
        -moz-background-size: cover;
        -o-background-size: cover;
        background-size: cover;
    }

    .headerText{
        color: white;
    }
    #searchForHouses{
        background: transparent;
        /*border: 1px solid gray;*/
        color: white;
    }
    .feature{
        width: 88%;
        height: 70%;
        /*margin: 10%;*/
        background-color: white;
        position: absolute;
        border-radius: 5px;
        padding: 5px;
    }
    a{
        text-decoration: none;
    }
</style>
</head>

<body>
    <script type="text/javascript" src="cordova.js"></script>

    <script type="text/javascript">
        function getDataForSearch(){
            alert("Button clicked")
            $.ajax({
                type: "POST",
                headers:{'Access-Control-Allow-Origin':'*'}, 
                url: "[username].pythonanywhere.com/getData", 
                data: {
                    requesttype: "getSearchData", 
                }, 
                success: function(results){
                    alert(results)
                },
                error: function(error){
                    alert("Error: "+error)
                }
            })
        }

        function functionOne(){
            // alert("Href Clicked")
        }
    </script>

    <div data-role="page" id="pageone" data-theme="a">
        <div data-role="header">
            <h1 class='headerText'>RealEstate.com.au</h1>
        </div>

        <div data-role="main" class="ui-content">
            <a href="#pagetwo" onclick="functionOne()"><button onclick="getDataForSearch()" id='searchForHouses'>Search for Houses</button></a>

            <div class='feature'>
                f
            </div>
        </div>

<!--          <div data-role="footer">
            <h1>Footer Text</h1>
        </div> -->
    </div>

    <div data-role="page" id="pagetwo" data-theme="b">

        <div data-role="header">
            <h1 class='headerText'>RealEstate.com.au</h1>
        </div>

        <div data-role="main" class="ui-content">

            <a href="#pageone">Go to Page One</a>
        </div>

<!--        <div data-role="footer">
            <h1>Footer Text</h1>
        </div> -->
    </div>
</body>
</html>

上面的代码失败。为什么? 如何访问从命令行输入的域名?

我意识到我可以将参数变量设置为“ domain”,然后可以访问args1.domain,但是当指定了错误参数时,命令行的输出显示为“ domain”,而我想查看“ domain name”。 “

ANSWER,发布在下面:在add_argument函数中使用metavar参数。

2 个答案:

答案 0 :(得分:1)

有了该import React from 'react'; const Icon = props => ( <div> <p>This is the icon</p> <img src={props.icon} alt="" /> </div> ); export default Icon; ,您有两种选择:

dest

转换为字典:

args1 = parser.parse_args(['foobar'])

In [506]: args1
Out[506]: Namespace(**{'domain name': ['foobar']})

使用通用In [507]: vars(args1) Out[507]: {'domain name': ['foobar']} In [508]: vars(args1)['domain name'] Out[508]: ['foobar']

getattr

In [509]: getattr(args1,'domain name') Out[509]: ['foobar'] 使用argparsegetattr访问命名空间。这样,它对参数的命名施加了最小的约束。但是要访问

setattr

目标必须是有效的变量名。

是的,当您回答时,使用args.foobar 并没有使用更复杂的metavar的真实理由。

答案 1 :(得分:0)

好的,答案是在add_argument()函数中使用参数metavar ='... name ...',以便在-h文本中以不同的方式显示。