2017-02-03 8 views
-4

У меня есть функция 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 

Затем, чтобы попытаться использовать listvalid_user_agents - Это не работы:

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

Но я не могу использовать в a for цикл, что я делаю неправильно?

+1

Вы не сохранили возвращаемое значение. – user2357112

+0

«Это не работает» не является проблемой. Покажите полное MCVE и полное сообщение об ошибке, включая трассировку стека. – Prune

ответ

1

Как user2357112 отметил, во-первых, вы игнорировали возвращаемое значение. valid_user_agents - это локальная переменная для вашей функции и не определена в основной программе.

Я подозреваю, что вы хотите что-то вроде этого:

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

Я пробовал это, и он ударил, кроме – Jshee

+0

. Я не думаю, что смогу помочь, пока вы не предоставите запрошенный код и симптомы. – Prune

0

Вы должны сохранить значение,

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