【发布时间】:2013-03-01 14:17:06
【问题描述】:
假设您有两个如下定义的 python 文件。假设一个是通用包 (class2),另一个执行特定覆盖并用作可执行文件 (class1)。
class1.py:
#!/usr/bin/python
class Test(object):
pass
class Verificator():
def check(self, myObject):
if not isinstance( myObject, Test ):
print "%s is no instance of %s" % (type(myObject),Test)
else:
print "OK!"
if __name__ == '__main__':
from class2 import getTest
v = Verificator()
t = Test()
v.check(t)
s = getTest()
v.check(s)
class2.py:
from class1 import Test
def getTest():
return Test()
发生的情况是第一次检查正常,而第二次检查失败。原因是t 是__main__.Test 而s 是class1.Test 和v.check() 检查__main__.Test,但归根结底是同一类,对吧?
有没有办法编写v.check() 使其也接受class1.Test 对象,或任何其他方式来解决这个问题?
【问题讨论】:
标签: python namespaces