2024-06-16 11:48:06 发布
网友
我想用django的设置.py在教室里。你知道吗
我知道我可以from myprojectname import settings,但是我想让它成为一个python包,这样如果我可以从类实例化的范围中获取这些值就更好了。你知道吗
from myprojectname import settings
将它传递给每个实例将很不方便,因为这些常量将在整个项目中使用。你知道吗
有办法吗?你知道吗
一般来说,您希望拥有尽可能少的依赖项。你知道吗
因为我不知道如何从实例化类的上下文中使用变量,所以我更愿意这样做:
class Independent(object): def __init__(self, context): self._context = context
因此,实例化代码可以提供一个上下文对象,该对象可以包含操作所需的任何上下文信息。这将使类完全独立于上下文,但当然要付出代价,因为您必须在任何实例化时提供信息。但是对于任何上下文,您只需要一个这样的对象,因此内存开销仅限于一个附加属性。你知道吗
另一个选项是,模块有一个全局上下文变量。当您导入模块时,您可以根据需要在一个更具体的模块中设置值,但是您当然应该在模块编码中进行设置。模块中的所有类都可以使用这个全局变量。当然,在任何一个程序中,整个模块的上下文都是有限的,但是在不同的程序中,可以有不同的上下文,而您的模块并不依赖于某些细节,比如“Django”。你知道吗
一般来说,您希望拥有尽可能少的依赖项。你知道吗
因为我不知道如何从实例化类的上下文中使用变量,所以我更愿意这样做:
因此,实例化代码可以提供一个上下文对象,该对象可以包含操作所需的任何上下文信息。这将使类完全独立于上下文,但当然要付出代价,因为您必须在任何实例化时提供信息。但是对于任何上下文,您只需要一个这样的对象,因此内存开销仅限于一个附加属性。你知道吗
另一个选项是,模块有一个全局上下文变量。当您导入模块时,您可以根据需要在一个更具体的模块中设置值,但是您当然应该在模块编码中进行设置。模块中的所有类都可以使用这个全局变量。当然,在任何一个程序中,整个模块的上下文都是有限的,但是在不同的程序中,可以有不同的上下文,而您的模块并不依赖于某些细节,比如“Django”。你知道吗
相关问题 更多 >
编程相关推荐