我正在尝试检查此setter中base_geo的类型。
a[...,index]
输出以下内容
@base_geo.setter
def base_geo(self, base_geo):
test_geo = Geo(self.data_node, "foo_geo")
print "inspect module base_geo: %s" % inspect.getmodule(base_geo)
print "inspect module Geo: %s" % inspect.getmodule(Geo)
print "type base_geo: %s" % type(base_geo)
print "base_geo: %s" % base_geo
print "base_geo.__class__: %s" % base_geo.__class__
print "Geo: %s" % Geo
print "type(base_geo) == Geo: %s" % str(type(base_geo) == Geo)
print "isinstance(base_geo, Geo): %s" % isinstance(base_geo, Geo)
print "base_geo.__class__ == Geo: %s\n" % str(base_geo.__class__ == Geo)
print "___TEST__GEO___"
print "inspect module test_geo: %s" % inspect.getmodule(test_geo)
print "inspect module Geo: %s" % inspect.getmodule(Geo)
print "type test_geo: %s" % type(test_geo)
print "test_geo: %s" % test_geo
print "test_geo.__class__: %s" % test_geo.__class__
print "Geo: %s" % Geo
print "type(test_geo) == Geo: %s" % str(type(test_geo) == Geo)
print "isinstance(test_geo, Geo): %s" % isinstance(test_geo, Geo)
print "test_geo.__class__ == Geo: %s" % str(test_geo.__class__ == Geo)
if not isinstance(base_geo, Geo):
raise TypeError, ("%s is not of type \"Geo\"" % base_geo)
self._base_geo = base_geo
关于test_geo案例为何按预期工作而base_geo却没有按预期工作的任何想法?我能想到的唯一区别是base_geo是在其他模块中构造的。通过在模块之间保持相同的导入,似乎可以解决其他有类似问题的人的例子。
答案 0 :(得分:0)
isinstance(base_geo, deformator.builderator.data_types.geo.Geo)
代替
isinstance(base_geo, Geo)
解决了