Этот следующий синтаксис работает для меня.
UPDATE
(SELECT A.utl_id,
b.utl1_id
FROM trb_pi_joint A
JOIN trb_tpr B
ON A.tp_id=B.tp_id Where A.pij_type=2 and a.utl_id is null
)
SET utl_id=utl1_id;
Это - то, как unpickler работает (site-packages/pickle.py):
def find_class(self, module, name):
# Subclasses may override this
__import__(module)
mod = sys.modules[module]
klass = getattr(mod, name)
return klass
, Чтобы найти и инстанцировать класса.
Поэтому, конечно, если Вы заменяете класс тождественно именованным классом, эти klass = getattr(mod, name)
, возвратит новый класс, и экземпляр будет иметь новый класс, и таким образом, isinstance перестанет работать.
Очевидный ответ, потому что не тот же класс.
подобный класс, но не то же.
class myclass(object):
pass
x = myclass()
class myclass(object):
pass
y = myclass()
assert id(x.__class__) == id(y.__class__) # Will fail, not the same object
x.__class__.foo = "bar"
assert y.__class__.foo == "bar" # will raise AttributeError
Измените свой код для печати id
из x.__class__
и x2.__class__
, и Вы будете видеть, что они отличаются:
$ python foo4.py
199876736
200015248