Portál AbcLinuxu, 27. dubna 2024 02:09


Dotaz: python-vyhodit vyjimku pri prirazeni

18.9.2012 12:41 pythonista
python-vyhodit vyjimku pri prirazeni
Přečteno: 173×
Odpovědět | Admin
Zdravim, spravuji rozsahlou aplikaci v pythonu a nekde v kodu dojde k prepsani modulu socket ze std knihovny, coz je vazna chyba:

socket=None

Potreboval bych vyhodit vyjimku v okamziku, kdy k tomu dojde. Nevite nekdo, jak?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.9.2012 13:09 Kit
Rozbalit Rozbalit vše Re: python-vyhodit vyjimku pri prirazeni
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co kdyby sis to jednoduše vygrepoval?

Jinak vůbec nechápu, jak k této situaci mohlo dojít. Byl jsem přesvědčen, že dokud nepoužiješ globální proměnnou, tak se to stát nemůže.
18.9.2012 19:27 marbu | skóre: 31 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: python-vyhodit vyjimku pri prirazeni
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud by ti stacilo odchyceni toho prirazeni nekde ve zdrojacich, jde to udelat (misto grepu) pres parsovaci modul primo v Pythonu, takze to jde dat do traba do testu:
#!/usr/bin/env python2
# -*- coding: utf8 -*-

import ast

def foo():
    socket = None

if __name__ == "__main__":
    a = ast.parse(open(__file__).read())
    for exp in ast.walk(a):
        if isinstance(exp, ast.Assign):
            try:
                for asgn in exp.targets:
                    if asgn.id == 'socket':
                        print "At line %d you are redefining 'socket' with: %s " % (
                            exp.lineno, exp.value.id)
            except:
                pass
There is no point in being so cool in a cold world.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.