Hi BlackJack,
das wird ja wieder mal eine Lehrstunde in Python, prima, danke dafür! Python ist derartig vielfältig, daß ich aus der (beschränkten?) Sicht meiner C Erfahrungen gar nicht auf die Idee komme, daß da noch was ist. Allein die Geschichte mit
hat mich mal wieder völlig Überrascht...
Ich habe Deinen Code mal übernommen und ausgeführt, bekomme aber eine Exception:
Code: Alles auswählen
Traceback (most recent call last):
File "D:\Program Files\eclipse 3.3\plugins\org.python.pydev.debug_1.3.8\pysrc\pydevd.py", line 575, in trace_dispatch
return dbFrame.trace_dispatch(frame, event, arg)
File "D:\Program Files\eclipse 3.3\plugins\org.python.pydev.debug_1.3.8\pysrc\pydevd_frame.py", line 53, in trace_dispatch
for b, condition, func_name in breakpoint.values():
GeneratorExit
Exception exceptions.SystemError: 'error return without exception set' in <generator object at 0x00BF64E0> ignored
Könnte das das Ende des Generators sein? Wenn ich das Skript ohne den Debugger laufen lasse, sehe ich die Exception nicht.
Frage nebenbei: Wieso baut die folgende Zeile überhaupt einen Generator?
[code = py]
class_name = (c.__name__ for c in getmro(motor.__class__))
[/code]
Was die Frage nach der Frage angeht:
Ich verstehe nicht, was Du nicht verstehst
. Soll heißen, daß für mich die Aufgabenstellung aus unserem Kontext heraus völlig klar und logisch ist, und daher auch unser Lösungsansatz. Aber dieser Lösungsansatz beruht möglicherweise auf einem zu geringen Verständnis der Konzepte von Python und deren Möglichkeiten.
Wir machen es uns hier auch vielleicht etwas einfach, kann sein. Du hast in einem früheren Beitrag hierzu gefragt, warum wir nicht auf Attribute abtesten. Möglicherweise denke ich zu kurz, aber nehmen wir an, eines der Attribute ist die Anbindung an die Steuerung, einmal über einen CAN Bus und zum anderen mal über eine RS232 Leitung. Dann gibt es mindestens zwei Testkategorien:
1.) Tests, die die Fähigkeiten des Motors testen, bei denen das Kommunikationsmedium völlig egal ist.
2.) Tests, die die Kommunikation selber testen oder aber spezielle Möglichkeiten des Kanals ausnutzen.
Wenn wir jetzt eine Testsuite aufbauen, dann möchten wir klassifizieren und abgleichen können,
- was ein spezieller Test benötigt und
- was ein Testaufbau hergibt.
Der Testentwickler kann nun einfach (na ja, da das mit dem String nicht geht, ist es nicht mehr ganz so einfach...) aufschreiben, was sein Test erfordert. Wir wollen bewußt eine feste Syntax vorgeben, damit sich der Anwender klar wird, was er tut (im Gegensatz zu dem, was er tun will
)
Reicht das an Erklärung? Wenn es Ideen gibt, das auf anderem Wege zu erreichen, dann nur her damit...
Gruß,
Christoph