2010-03-09 2 views
0

у меня есть эта функция pymssql.connect (хост = «мой хозяин», пользователь = «мой пользователь», пароль = «мой проход», базы данных = «MYDB»)pymssql подключить функцию

Я хочу прочитать пользователь и пароль от пользователя и поместить их там, что возможно или именованные аргументы lvalue не должны быть переменными, и если да, то как я могу это сделать?

т.е. можно ли назвать эту функцию как: pymssql, подключение (хост = Название переменной, ...)

+2

Марк прав: вы, кажется, плохо понимаете, как функции Python имеют дело с необязательными аргументами. Есть много хороших книг, плюс множество хороших бесплатных обучающих программ для людей, которые только начинают работать с языком. Для примера * Python для разработки программного обеспечения: как думать, как компьютерный ученый * имеет бесплатную загружаемую копию @ http://www.greenteapress.com/thinkpython/. –

+0

Что я имею в виду, если я могу вызвать такую ​​функцию: f (arg1 = var) где var является переменной – oren

ответ

3

Ваш вопрос сформулирован ... странно. У вас возникли проблемы с 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, чтобы обнаружить недостающий аргумент и выполнять другую функцию.

+0

Извините, что я снова редактировал свой вопрос – oren

0

Для того, чтобы прочитать ввод от пользователя, вы можете использовать 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) 
Смежные вопросы