使用函数外部方法声明

时间:2017-02-03 00:05:40

标签: python function python-3.x

我有一个函数get_user_agent()

def get_user_agent():
    valid_user_agents = []
    db = pymysql.connect(host='localhost', user='root',passwd='password',db='garbagedb')
    cursor = db.cursor()
    try:
        with db.cursor() as cursor:
            useragent_query = "SELECT `ua` FROM `useragent`"
            cursor.execute(useragent_query)
            useragent_value = cursor.fetchall()
            valid_user_agents.append(useragent_value)
        db.close()
    except:
        print("error SELECTing useragent_value")
    return valid_user_agents     

db = pymysql.connect(host='localhost', user='root',passwd='password',db='garbagedb')
cursor = db.cursor()

get_user_agent() # function invoked

然后尝试使用list valid_user_agents - 工作:

for ua in valid_user_agents:
    print("do something?")

但是我不能在for循环中使用,我做错了什么?

2 个答案:

答案 0 :(得分:1)

首先指出 user2357112 ,您忽略了返回值。 valid_user_agents 是函数的局部变量,在主程序中未定义。

我怀疑你想要这样的东西:

for ua in get_user_agent():
    print ("Do something?")

答案 1 :(得分:0)

您需要保存值

>>> def foobar():
...     foo = 1
...     return foo
... 
>>> bar = foobar()
>>> if bar:
...     print('foobar')
... 
foobar
>>>