主文件中的类,另一个文件中的方法

时间:2018-09-29 19:32:39

标签: python class import

我有两个文件,在主文件中有一个类,在另一个文件中有一种使用/编辑类对象的方法,该如何导入文件。

主文件:

import..? # the other file


class Fields:
        def __init__(self, y , x):
            self.positionx=x
            self.positiony=y
            self.color = 'white'
            self.free = True

            self.update()


        def update(self):
            ###



Field1=Fields(1,3)
###
### whatever...

第二个文件:

def change_color():
    actualcolor=Field1.color
    Field1.color='blue'
    Field1.update()
    ###

我尝试过:     表格2ndfile导入change_color 但这给了我错误:

NameError: name 'Field1' is not defined

清楚吗?我该怎么做?

Tkx

1 个答案:

答案 0 :(得分:0)

您要在此处执行的操作称为循环导入,这是Python不支持的功能。 通常,您可以阅读有关here的更多信息,这意味着不可能有2个相互依赖的文件。

要解决该问题,您要做的就是将两个文件都需要的资源提取到另一个可以从中导入的文件,例如:

models.py

class Fields:
        def __init__(self, y , x):
            self.positionx=x
            self.positiony=y
            self.color = 'white'
            self.free = True

            self.update()


        def update(self):
            ###



Field1=Fields(1,3)

main.py

from models import Field1
from other_file import ...

def main():
    # Do stuff

other_file.py

from models import Field1
def change_color():
    actualcolor=Field1.color
    Field1.color='blue'
    Field1.update()
    ###