Python class 具有可变属性名称的工厂
Python class factory with variable attribute names
我正在创建一个 Django 应用程序,在开发过程中我创建了许多具有非常相似结构的 类,例如:
class OneAPIListView(generics.ListAPIView):
queryset = models.One.objects.all()
serializer_class = serializers.OneSerializer
filter_class = OneFilterSet
class TwoAPIListView(generics.ListAPIView):
queryset = models.Two.objects.all()
serializer_class = serializers.TwoSerializer
filter_class = TwoFilterSet
...
class <Name>APIListView(generics.ListAPIView):
queryset = models.<Name>.objects.all()
serializer_class = serializers.<Name>Serializer
filter_class = <Name>FilterSet
我想知道是否有办法从字符串列表 ["One", "Two", ..., <Name>]
中自动生成这些 类。我看到在其他 SO 问题 like this 中有 meta类,例如我可以做类似
的事情
<Name> = type(<Name> + "APIListView", (generics.ListAPIView,), {'queryset' : ???})
但我不确定在我的情况下要将什么放入 ???
,因为该变量是对象名称的一部分。
我正在创建一个 Django 应用程序,在开发过程中我创建了许多具有非常相似结构的 类,例如:
class OneAPIListView(generics.ListAPIView):
queryset = models.One.objects.all()
serializer_class = serializers.OneSerializer
filter_class = OneFilterSet
class TwoAPIListView(generics.ListAPIView):
queryset = models.Two.objects.all()
serializer_class = serializers.TwoSerializer
filter_class = TwoFilterSet
...
class <Name>APIListView(generics.ListAPIView):
queryset = models.<Name>.objects.all()
serializer_class = serializers.<Name>Serializer
filter_class = <Name>FilterSet
我想知道是否有办法从字符串列表 ["One", "Two", ..., <Name>]
中自动生成这些 类。我看到在其他 SO 问题 like this 中有 meta类,例如我可以做类似
<Name> = type(<Name> + "APIListView", (generics.ListAPIView,), {'queryset' : ???})
但我不确定在我的情况下要将什么放入 ???
,因为该变量是对象名称的一部分。