【问题标题】:pymssql connect functionpymssql 连接函数
【发布时间】:2010-03-09 17:45:17
【问题描述】:

我有这个功能 pymssql.connect(host="my host",user="my user",password="my pass",database="mydb")

我想从用户那里读取用户名和密码并将它们放在那里可能或命名的参数 lvalue 不应该是可变的,如果是,那么我该怎么做?

即是否可以像这样调用此函数: pymssql,connect(host=varaible,...)

【问题讨论】:

  • Mark 是对的:您似乎对 Python 函数如何处理可选参数不太了解。那里有许多好书,还有大量的免费教程,供刚开始使用该语言的人使用。例如 Python for Software Design: How to Think Like a Computer Scientist 有一个免费的、可下载的副本@greenteapress.com/thinkpython
  • 我的意思是如果我可以调用这样的函数:f(arg1=var) where var is variable

标签: python sql-server


【解决方案1】:

你的问题措辞...奇怪。您在函数定义中遇到setting default arguments 的问题吗?

>>> def f(arg1="hello", arg2="goodbye"):
    print "arg1 is", arg1
    print "arg2 is", arg2


>>> f()
arg1 is hello
arg2 is goodbye
>>> f(arg2="two")
arg1 is hello
arg2 is two
>>> f(1,2)
arg1 is 1
arg2 is 2
>>> f(arg2="foo", arg1="bar")
arg1 is bar
arg2 is foo

如果这不是您要查找的内容,您是否要提示用户输入缺少的参数?

>>> def g(arg=None):
    if arg is None:
        arg = raw_input("What is the argument?")
    print "The argument was", arg


>>> g(123)
The argument was 123
>>> g()
What is the argument? foo bar
The argument was  foo bar

对缺失的参数使用标记值 None 是 Python 中检测缺失参数并执行另一个函数的惯用方式。

【讨论】:

    【解决方案2】:

    要读取用户的输入,您可以使用raw_input
    要使用程序的命令行参数,您必须 import sys 并使用 sys.argv

    例如:

    import sys
    myvar = raw_input("please input a var") #prompts the user for a value
    myvar2 = sys.argv[1] #gets the first argument to the program
    

    然后您可以使用命名参数,例如

    myfun(named=myvar, named2=myvar2)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-20
      • 2016-07-13
      • 1970-01-01
      • 2015-11-25
      • 1970-01-01
      • 2015-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多