Python ';非类型';对象没有属性';tttttt';

Python ';非类型';对象没有属性';tttttt';,python,openerp,Python,Openerp,我对那个代码有问题。它怎么了 class test(osv.osv): _name = "test" _description = "uuuu" def tttttt(): return "testtt" test() instance = test() print (instance.tttttt()) 有趣的问题。经过一些挖掘,OpenERP框架似乎在对象创建机制方面做了一些奇怪的事情。对于BaseModel的子类,如osv.

我对那个代码有问题。它怎么了

class test(osv.osv):
    _name = "test"    
    _description = "uuuu"    

    def tttttt():
        return "testtt"

test() 

instance = test()
print (instance.tttttt())

有趣的问题。经过一些挖掘,OpenERP框架似乎在对象创建机制方面做了一些奇怪的事情。对于
BaseModel
的子类,如
osv.osv
和您的类,只需在池中注册该类并返回
None

您可以通过稍微修改打印语句来确认这一点

instance = test()
print instance is None # will print True.
据我所知,OpenERP模型类不能在服务器进程之外运行。若您试图编写单元测试或其他东西,则必须编写单独的帮助器类并对其进行测试,或者使用运行完整的集成测试


有关测试助手类的示例,请参阅我们的模块。
sim.*
类是单元测试的助手,它们都被
product\u stockout.py中的模型类调用。另外,为什么不
def tttttttt(self):
?为什么名称如此不可读?也许这是你的问题?尝试使用更简单的名称。我特别制作了一个像这样的简单示例来简化代码。通常情况下,这是我试图调试的100行代码…不,我没有,因为我不会安装
osv
包来为您调试代码。我只是向你提供了一些反馈,可以帮助你找出问题所在,并请你做一个简单的复制粘贴来满足我的要求。如果你做不到这一点,你就不应该得到帮助。完整的stacktrace在哪里?这是完整的密码吗?请注意,
NoneType
不应具有任意属性。奇怪的是,如果这是您的真实代码,您不应该从类构造调用返回
None