我是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之后立即添加时间延迟来调用该方法?
答案 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)