在python中扩展内部类属性

2024-06-09 13:26:24 发布

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

在我的django应用程序中,有几个应用程序是我通过AppConfig激活的应用程序.py文件和我有一个BaseAppConfig类:

class BaseAppConfig(AppConfig):
    launchpad = None

    def __init__(self, app_name, app_module):
        AppConfig.__init__(self, app_name, app_module)
        self.launchpad = self.Launchpad()

    class Launchpad:
        show = True
        icon = "fa fa-cogs"

我在我的自定义应用程序中使用这个BaseAppConfig,比如:

class CustomerConfig(BaseAppConfig):
    name = 'customer'

    class Launchpad:
        icon = "fa fa-book"

当我尝试使用customer_config.launchpad.show访问CustomerConfigshow属性时,它返回AttributeError。你知道吗

Python像new一样重写所有内部类。你知道吗

如何实现仅仅扩展内部类的属性?你知道吗


Tags: nameselfapp应用程序launchpadinitshowclass
1条回答
网友
1楼 · 发布于 2024-06-09 13:26:24

这是因为您正在重写Launchpad类。因此,它不能回退并按照您的意愿解析为BaseAppConfig。你知道吗

你得把你的课改成这样才能让它发挥作用

class CustomerConfig(BaseAppConfig):
     name = 'customer'

    class Launchpad(BaseAppConfig.Launchpad):
        icon = "fa fa-book"

这样它就有了对基类Launchpad实例的引用。你知道吗

相关问题 更多 >