将变量传递给类属性

时间:2018-11-22 23:10:51

标签: python class

我有两个文件,其中一个是定义了类的python(2.7)文件。我知道如何创建实例以及类属性和实例属性之间的区别。我知道在创建任何实例时,您都将根据构造函数中定义的内容传递变量。但是我想将另一个文件中的变量作为类属性而不是实例属性传递到我的python文件中。这可能吗?

文件#1(Python 2.7):

class Controller:

"""
counter is my desired class attribute. But here, python
tells me GRID is not defined.
"""
counter = (GRID ** 2)  # Gives a NameError.

def __init__(self, WIDTH, HEIGHT, GRID):
    """I'd like GRID to be a variable that's read from another file."""
    self.WIDTH = WIDTH
    self.HEIGHT = HEIGHT
    self.GRID = GRID

文件#2(用于保存所有常数和幻数的“主”文件):

WIDTH = 500
HEIGHT = 500
GRID = 4
controller = Controller(WIDTH, HEIGHT, GRID)  # New Controller object.

当我尝试将counter定义为基于变量GRID的公式时,我得到了NameError: GRID is not defined。有没有办法我可以根据变量来定义类属性-在这种情况下为counter

很显然,我可以只写counter = 4 ** 2,但是我想将所有常量和幻数保存在一个文件中,因此我只能根据需要在一个文件中更新它们。

0 个答案:

没有答案