Python Baňka - Easy Dotazování Funkce

hlasů
1

Může mi někdo vysvětlit mi poslední řádek return (rv[0] if rv else None) if one else rv? Zejména role one.

def query_db(query, args=(), one=False):
    cur = g.db.execute(query, args)
    rv = [dict((cur.description[idx][0], value)
               for idx, value in enumerate(row)) for row in cur.fetchall()]
    return (rv[0] if rv else None) if one else rv
Položena 21/09/2011 v 01:57
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
2

oneindikuje, zda má nebo nemá vrátit pouze jeden záznam. Pokud oneje pravda, pak se vrací první ( rv[0]), pokud existují záznamy lze nalézt ( if rv), v opačném případě vrátí všechny záznamy.

Odpovězeno 21/09/2011 v 02:01
zdroj uživatelem

hlasů
1

Ve výchozím nastavení oneje False, aby ve výchozím nastavení dicts list-of-generované ze fetchalldostane se vrátil.

Pokud předáte Truepro one, dostanete pouze první řádek (proměnila dict) dotazu, nebo Nonev případě, že dotaz nevrátil žádné řádky.

Odpovězeno 21/09/2011 v 02:02
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more