【问题标题】:How to not specify default parameters in python?如何在python中不指定默认参数?
【发布时间】:2010-12-02 11:53:50
【问题描述】:

我正在使用 python 包 (MySQLdb)。 connect 方法有很多位置参数,大部分都有默认值,但也有一些不容易推导出来。

如何只指定我想要的参数?

即如果连接方法具有以下签名:

connect(username, password, socket, timeout)

socket 有一个默认值,可能与系统相关

是否可以使用类似以下的方式调用它,这样我就不会覆盖socket 的默认值:

connect('tom', 'passwd12', , 3)

【问题讨论】:

    标签: python function syntax


    【解决方案1】:

    试试这个:

    connect(username='tom', password='passwd12', timeout=3)
    

    更多信息请查看Using Optional and Named Arguments

    【讨论】:

    • mysql-python.sourceforge.net/MySQLdb.html#mysqldb 似乎表明大多数是位置参数,而不是关键字参数
    • @petraus:如果您阅读该页面,您会看到与答案中发布的完全相同的代码。
    • 感谢您的链接。我看书的时候一定错过了。
    • @SilentGhost - 哦,是的,我没看到 :-)
    【解决方案2】:

    在这种情况下,最好使用关键字参数而不是位置参数。 很明显

    connect ('tom', 'passwd12, None, 3)
    

    更难理解
    connect (username = 'tom',
             password = 'passwd12',
             timeout = 3)
    

    【讨论】:

      【解决方案3】:

      MySQLdb-python 源是这样说的连接:

      "强烈建议您只使用关键字参数。"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-23
        • 1970-01-01
        • 2011-12-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多