在声明类之前引用python中的类

2024-09-25 00:29:09 发布

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

好的,使用Django REST框架教程中的直接示例,我有两个类:UserSerializer和snippeserializer。我希望能够在SnippetSerializer类声明中使用“UserSerializer”作为序列化程序,但是由于某些原因,SnippetSerializer需要首先声明。代码示例:

class SnippetSerializer(serializers.HyperlinkedModelSerializer):
    owner = UserSerializer()
    #unimportant stuff

class UserSerializer(serializers.HyperlinkedModelSerializer):
    #unimportant stuff - lets say we reference SnippetSerializer here

想到的最明显的答案是forward声明,但是从我所有的研究中,我在Python中找不到这一点。在

另一个我认为可行的解决方案,但没有(也许我做错了?)而是尝试在init方法中声明此关系

^{pr2}$

但这个框架似乎完全忽视了这一点。在

我也尝试过使用@addto,但它似乎只适用于函数,而不适用于属性/属性

有办法解决这个问题吗?在Python中,这种先有鸡后有蛋的类问题一直困扰着我,但我终于遇到了一个实例,它实际上阻止了我完成任务。在


Tags: django框架rest声明示例属性教程class
1条回答
网友
1楼 · 发布于 2024-09-25 00:29:09

这个问题听起来与StackOverflow上发布的其他Django forward声明问题非常相似。您可以使用类似this style of forward declaration?的方法吗?您需要将owner成员包装在Django函数调用中,我不知道在这种情况下是否有合适的调用可以使用。此解决方案还特定于Django,而不是Python的本机特性。在

相关问题 更多 >