doctest AttributeError

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
barrio
User
Beiträge: 30
Registriert: Dienstag 26. Februar 2013, 13:15

Hi zusammen,

ich bräuchte mal Eure Hilfe. Bin grade dabei die Aufgaben von think python zu lösen und probiere etwas mit doctest rum. Zunächst funktionierte alles reibungslos mit diesem Code:

Code: Alles auswählen

def main(wort):
    '''
        Wort so ausgeben, dass letztes Zeichen in Spalte 70

        args: wort (str)
        return: None

        testcases:   
        >>> main("bla")
        :::::::::|:::::::::|:::::::::|:::::::::|:::::::::|:::::::::|:::::::bla

        >>> main(0)
        Traceback (most recent call last):
        ...
        TypeError: object of type 'int' has no len()
        
    '''
    
    space = ""
    abstand = 70 - len(wort)
    
    for i in range(abstand):
        if (i+1)%10 == 0: # jede 10. Stelle |, sonst :
            space += "|"
        else:
            space += ":"
    
    print("{}{}".format(space, wort))
    return

if __name__ == '__main__':
    import doctest
    import timeit
    doctest.testmod(verbose=True)
    print(timeit.timeit("main('bla')", number=100, setup="from __main__ import main"))    
Seit ein paar Durchläufen wird folgender Fehler geworfen:

Code: Alles auswählen

Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:55:48) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import doctest
>>> doctest.testmod()
TestResults(failed=0, attempted=0)
>>> ================================ RESTART ================================
>>> 
Traceback (most recent call last):
  File "Z:\Python\rechtsbündig2.py", line 34, in <module>
    doctest.testmod(verbose=True)
AttributeError: 'module' object has no attribute 'testmod'
>>> 
Der code lief m. E. vorher zig mal problemlos und der import von doctest in der shell geht vor der ersten Ausführung des codes, danach nicht mehr. Beim Neutippen von doctest.testmod() wird dies auch vom autocomplete in IDLE nicht gefunden.

Was läuft hier schief? TNX
> (...(lambda...(it-schemes-i-must-be-jailed-in-braces? code)...))))))))))))))))))))))))))
#t
BlackJack

@barrio: Hast Du zufällig ein eigenes Modul mit dem Namen `doctest` irgend wo herum liegen? Mach mal nach dem Import einfach ein ``print(doctest)``.
barrio
User
Beiträge: 30
Registriert: Dienstag 26. Februar 2013, 13:15

Oh mann, das hatte ich gestern abend grad gelesen, das ein lokales Modul vorrang hat... Danke für den Tip!
> (...(lambda...(it-schemes-i-must-be-jailed-in-braces? code)...))))))))))))))))))))))))))
#t
Antworten