【问题标题】:How to share variables between two django class?如何在两个 django 类之间共享变量?
【发布时间】:2023-06-13 17:29:01
【问题描述】:

我有两个 djangoAB。两者都在同一个 django App 文件夹中(但它们在不同的文件中)。现在我希望类 B 可以访问类 A 变量。

A类: 定义生成(自我): url = "我想从 B 类访问这个变量" B类: 定义获取(自我): # 获取 url 变量并做一些事情

我应该怎么做?

【问题讨论】:

    标签: python django


    【解决方案1】:

    您应该首先实例化一个A 实例,然后从generate 函数返回url,然后将返回值提供给B 中的get 函数:

    Class A:
     def generate(self):
       url = "i want access to this variable from Class B"
       return url
    
    
    Class B:
     def get(self, url):
      # get url variable and do something
    
    # here's how you use it
    a = A()
    b = B()
    b.get(a.generate())
    

    看看这是否有意义。

    编辑:

    如果您的generate 函数设置为stone,您还可以将url 提升为类变量:

    Class A:
     def generate(self):
       url = "i want access to this variable from Class B"
       self.foo_url = url
    
    a = A()
    b = B()
    # call generate to get the foo_url as property of object a
    a.generate()
    b.get(a.foo_url)
    

    【讨论】:

    • 就我而言,该函数无法返回数据(有一堆类需要访问它)。那么你还有其他方法可以访问该变量吗?