首页 > 解决方案 > 将变量传递给类属性

问题描述

我有两个文件,其中一个是定义了类的 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为基于 variable 的公式时GRID,我得到一个NameError: GRID is not defined. 有没有一种方法可以定义类属性——counter在这种情况下——根据变量?

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

标签: pythonclass

解决方案


推荐阅读