父 class 可以访问 Python 中其他父 class 的变量吗?

Can parent class access variable of other parent class in Python?

在阅读 Django Unleashed 这本书时,我偶然发现了这段代码。我想知道为什么 NewsLinkGetObjectMixin 可以访问 class 变量 startup_slug_url_kwarg,它是在另一个基础 class StartupContextMixin 中定义的?

class NewsLinkGetObjectMixin():

    def get_object(self, queryset=None):
        startup_slug = self.kwargs.get(
            self.startup_slug_url_kwarg)
        newslink_slug = self.kwargs.get(
            self.slug_url_kwarg)
        return get_object_or_404(
            NewsLink,
            slug__iexact=newslink_slug,
            startup__slug__iexact=startup_slug)

class StartupContextMixin():
    startup_slug_url_kwarg = 'startup_slug'
    startup_context_object_name = 'startup'

    def get_context_data(self, **kwargs):
        startup_slug = self.kwargs.get(
            self.startup_slug_url_kwarg)
        startup = get_object_or_404(
            Startup, slug__iexact=startup_slug)
        context = {
            self.startup_context_object_name:
                startup,
        }
        context.update(kwargs)
        return super().get_context_data(**context)

class NewsLinkCreate(NewsLinkGetObjectMixin, StartupContextMixin, CreateView):

当您从多个基 class 继承一个 class 时,继承的 class 可以访问基 class 的所有属性。

NewsLinkCreate 继承自 NewsLinkGetObjectMixinStartupContextMixin。因此,当您在 NewsLinkCreate 实例上调用方法 get_object 时,它可以访问来自 NewsLinkGetObjectMixinStartupContextMixin 的变量,因为 NewsLinkCreate 是从 [=23] 继承的=]是的。两个 mixin 的所有属性都添加到 class NewsLinkCreate.