ich das Multiprocessing-Modul auf Python3.4 verwenden. Aus irgendeinem Grund bekomme ich folgende Fehler isinstance mit():isinstance Typeerror erhöhen, wenn auf Multiprozessor-Sperre verwendet
>>> from multiprocessing import Lock
>>> isinstance(Lock(), Lock)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: isinstance() arg 2 must be a type or tuple of types
Während, wenn ich das gleiche versuchen mit datetime
funktioniert es
>>> from datetime import datetime, timedelta
>>> isinstance(datetime.now(), datetime)
True
Was ich versucht:
Wenn ich überprüfen sehen, wie Sperren zeigt in der Konsole vs Datetime und ich folgendes:
>>> Lock()
<Lock(owner=None)>
>>> Lock
<bound method DefaultContext.Lock of <multiprocessing.context.DefaultContext object at 0x00000000039810B8>>
>>> datetime.now()
datetime.datetime(2016, 6, 13, 11, 24, 12, 573712)
>>> datetime
<class 'datetime.datetime'>
aber folgende Lock zu seiner Definition zeigt, dass es in der Tat eine Klasse ist.
class Lock(object):
def acquire(self, blocking=True, timeout=-1):
pass
def release(self):
pass
Also warum nennt die Konsole es eine "gebundene Methode". Wie kann ich isinstance() für eine Lock-Instanz verwenden?
definiert. Das 'Lock' ist keine Klasse. Ich bin mir nicht sicher, warum Sie sagen, es ist –
'gebunden Methode DefaultContext.Lock' ... Es ist ein Verfahren zur Herstellung einer Sperre zurückkehrte, nicht eine Klasse – mata
ich PyCharm bin mit. Diese Klassendefinition bekomme ich, wenn ich bei gedrückter Strg-Taste auf "Sperren" klicke. Es liegt in Multiprocessing \\ __ init__.py –