我正在创建包含不同文件的虚拟操作系统,例如boot.py
和Run.py
它工作了一段时间,直到我输入:
if Run.run == 0:
error()
else:
start()
没有错误说红线或任何错误。现在我收到了这个错误:
AttributeError("module 'boot' has no attribute 'bootup'",)
以下是代码:
boot.py
:
#Imports
import Run
#Varibles
name = "PyOS"
version = 1
creator = "© Dragon Softwares"
def bootup(run):
if Run.run == 0:
error()
else:
start()
def start():
print("Starting PyOS")
print("Version ", version)
def error():
print("Please Run 'Run.py' To bootup the system")
bootup()
Run.py
:
#Imports
import time
import boot
#Varibles
run = 0
def main():
run = 1
time.sleep(0.1)
boot.bootup
main()
答案 0 :(得分:1)
您有循环导入。不要value(.+)
导入 s.replaceAll("(\\G(?!^)|value=)([^\\\\\\s]*)[\\s\\\\]+", "$1$2")
,反之亦然。
现在发生的事情是:
boot
作为Run
模块执行。
Run.py
。__main__
,因此找到import boot
并将其加载为boot
模块。
boot.py
。boot
,因此找到import Run
并将其加载为Run
模块。 注意:Run.py
Run 并不重要。
Run.py
。__main__
已被导入,因此用于在import boot
模块中设置名称boot
boot
模块命名空间(Run
和Run
)中设置了各种其他名称。run
main
函数引用main()
,但尚未存在,因为main()
模块顶级代码从未到达boot.bootup
行。不是导入boot
,而是将def bootup(run):
值作为参数传递给Run
函数:
run
另外,请勿在{{1}}模块的末尾拨打boot
。导入def main():
run = 1
time.sleep(0.1)
boot.bootup(run)
时,该函数调用将被执行,并且没有意义。如果要显示错误消息,请使用bootup()
警卫:
boot
如果您将boot
作为脚本运行,则if __name__ == '__main__':
测试才会成立。