如何从 parent 获取 class 类型
How can I get class type from parent
我有一个 parent class BaseResource
,我在其中定义了所有 child 应该共有的行为。我正在覆盖某些 django-tastypie 模型中定义的 ModelResource.update_in_place
。
class BaseResource(ModelResource):
def update_in_place(self, ...):
...
return super(ChildResource, self).update_in_place(...)
现在我有 Child1Resource
、Child2Resource
,它们都继承自 BaseResource
。如何获取 parent 中 child 资源的类型?
我试过 self.__class__()
,但我得到了 must be type, not Child1Resource
。
你需要 self.__class__
,而不是 self.__class__()
(括号是调用运算符,所以后面的 returns 是 self.__class__
实例,而不是 class本身。
但无论如何:那是 而不是 如何使用 super()
,你真的想传递 BaseResource
作为这里的第一个参数 - 重点是传递定义方法的 class,而不是调用方法的 class(这将毫无意义,因为可以使用 self.__class__
检查它)。
我有一个 parent class BaseResource
,我在其中定义了所有 child 应该共有的行为。我正在覆盖某些 django-tastypie 模型中定义的 ModelResource.update_in_place
。
class BaseResource(ModelResource):
def update_in_place(self, ...):
...
return super(ChildResource, self).update_in_place(...)
现在我有 Child1Resource
、Child2Resource
,它们都继承自 BaseResource
。如何获取 parent 中 child 资源的类型?
我试过 self.__class__()
,但我得到了 must be type, not Child1Resource
。
你需要 self.__class__
,而不是 self.__class__()
(括号是调用运算符,所以后面的 returns 是 self.__class__
实例,而不是 class本身。
但无论如何:那是 而不是 如何使用 super()
,你真的想传递 BaseResource
作为这里的第一个参数 - 重点是传递定义方法的 class,而不是调用方法的 class(这将毫无意义,因为可以使用 self.__class__
检查它)。