Python-如何从另一个新修改的python文件中调用类方法

时间:2018-11-21 15:57:12

标签: python-3.x class methods

我是python编程的新手,想寻求帮助来从另一个新修改的python文件中调用方法。

我目前有3个python文件:main.py,addBody.py和originalBody.py。

在每次迭代中,addBody都会将主体的一部分添加到originalBody.py中。这是通过读写功能完成的。

例如,

在第一次迭代中(从main.py发起),originalBody.py如下所示:

class BODY:
    def __init__(self):
        object1 = send_cylinder(length = 1.0, radius = 0.1)
        bodySegment = {}
        bodySegment[0] = 1  #one body

在第二次迭代中,originalBody.py将自动如下所示:

class BODY:
    def __init__(self):
        object1 = send_cylinder(length = 1.0, radius = 0.1)
        object2 = send_cylinder(length = 1.0, radius = 0.1)
        bodySegment = {}
        bodySegment[0] = 1  #one body
        bodySegment[1] = 2  #two body

当我尝试从main.py调用该类时,

main.py

from originalBody import BODY

for i in range (0,10):

    fileToRead = open('addBody.py')
    fileToAppend = open('originalBody.py', 'a')
    ...(add body from addBody.py to originalBody.py)...
    fileToAppend.close()
    fileToRead.close()

    parent = BODY()
    print(parent.bodySegment)

在第一次迭代中,它运行平稳:

{0: 1}

在第二次迭代中,将正文段添加到originalBody.py之后,预期结果将被打印出来:

{0: 1, 1: 2}

但是,它会打印出第一次迭代的结果:

{0: 1}

我怀疑我的代码从originalBody.py的原始版本调用了尚未修改的函数。我是否需要在主体中添加一些代码以从经过修改的originalBody版本获取类方法?还是需要在修改originalBody之后立即添加时间延迟来调用该方法?

1 个答案:

答案 0 :(得分:0)

您可以使用 reload 内置功能在模块导入后重新加载。

我使用import originalBody编辑了您的代码,因为我不确定重新加载函数如何使用from x import y语法。

以下代码:

from importlib import reload
import originalBody

for i in range (0,10):
    reload(originalBody)

    fileToRead = open('addBody.py')
    fileToAppend = open('originalBody.py', 'a')
    ...(add body from addBody.py to originalBody.py)...
    fileToAppend.close()
    fileToRead.close()

    parent = originalBody.BODY()
    print(parent.bodySegment)