Ich habe versucht, threading.Condition früher heute, aber es hat nicht geklappt. Hier ist die Ausgabe des Python-Interpreter, wenn ich versuche, die threading.Condition Klasse, Unterklasse:Fehler beim Aufruf der Metaklassen-Basen: function() Argument 1 muss Code sein, nicht str
>>> import threading
>>> class ThisWontWork(threading.Condition):
... pass
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Error when calling the metaclass bases
function() argument 1 must be code, not str
Kann jemand diesen Fehler erklären? Vielen Dank!
Seltsam, ich dachte nicht, um seinen Typ zu überprüfen. Die Dokumente scheinen ein wenig irreführend zu sein, denn sie sagen (http://docs.python.org/library/threading.html) "class threading.Condition ([lock])", was ein wenig irreführend erscheint. Wie auch immer, danke für das Aufräumen :). –
Ich sehe es auch, wenn Sie fälschlicherweise ein Modul als Basisklasse verwenden: class Befehl (main.cmdroot.list.hosts) und nicht den richtigen Befehl (main.cmdroot.list.hosts.Command) – FDS
Eine andere häufige Ursache ist, wenn abgeleitet von eine Basisklasse, die einen Dekorator hat. Der Decorator kann auch den Typ der Basisklasse in "<'function'>" ändern. –