Python:递归结构

2024-04-26 05:06:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我对thrift代码生成器或python有问题。在

代码示例(由thrift生成):

class SomeClass:
    spec = (
            (1, (SomeClass, SomeClass.spec)),
    )

错误消息:

^{2}$

所以我在thrift jira找到了bug(自2014年至今仍在营业)。建议的解决方案相当糟糕。在

我能避免这个问题吗?在

在*.thrift或*.py文件中的最佳解决方案中,可以在生成之前或之后手动更改。在


Tags: 代码py消息示例错误jira解决方案thrift
2条回答

看来,python生成的代码包含无用字段

SomeClass.spec

所以我就把它删掉。在

我将其与java生成的代码进行了比较。在

如果有人使用我的解决方案,别忘了更改生成的方法,那就是检查,当你的规范!=无

尝试用下面的代码片段替换代码,注意:它使用的是列表而不是元组,因为元组是不可变的。在

class SomeClass:
    spec = None
    @classmethod
    def init(cls):
        cls.spec = []
        cls.spec.append( [ 1 , (cls, cls.spec) ] )

SomeClass.init()

print( SomeClass.spec )       # [[1, (<class SomeClass>, [...])]]

另一个没有类方法的解决方案

^{pr2}$

相关问题 更多 >