Python:如何从类所在的范围中获取常量?

2024-06-16 11:48:06 发布

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

我想用django的设置.py在教室里。你知道吗

我知道我可以from myprojectname import settings,但是我想让它成为一个python包,这样如果我可以从类实例化的范围中获取这些值就更好了。你知道吗

将它传递给每个实例将很不方便,因为这些常量将在整个项目中使用。你知道吗

有办法吗?你知道吗


Tags: 项目django实例frompyimportsettings常量
1条回答
网友
1楼 · 发布于 2024-06-16 11:48:06

一般来说,您希望拥有尽可能少的依赖项。你知道吗

因为我不知道如何从实例化类的上下文中使用变量,所以我更愿意这样做:

class Independent(object):

  def __init__(self, context):
     self._context = context

因此,实例化代码可以提供一个上下文对象,该对象可以包含操作所需的任何上下文信息。这将使类完全独立于上下文,但当然要付出代价,因为您必须在任何实例化时提供信息。但是对于任何上下文,您只需要一个这样的对象,因此内存开销仅限于一个附加属性。你知道吗

另一个选项是,模块有一个全局上下文变量。当您导入模块时,您可以根据需要在一个更具体的模块中设置值,但是您当然应该在模块编码中进行设置。模块中的所有类都可以使用这个全局变量。当然,在任何一个程序中,整个模块的上下文都是有限的,但是在不同的程序中,可以有不同的上下文,而您的模块并不依赖于某些细节,比如“Django”。你知道吗

相关问题 更多 >