首页 > 解决方案 > 如何修复:主要功能无法访问 - Python 3.5

问题描述

我正在尝试根据此视频制作一个非常简单的机器人:https ://www.youtube.com/watch?v=5Jwd69MRYwg

当屏幕的一部分改变颜色时应该调用的主函数根本没有运行。

我试过用

"main()" 

"if __name__ == '__main__':
    main()"

分别。两者都不允许代码运行

def restart_game():
    time.sleep(1)
    pyautogui.click(Coordinates.replayBtn)
def image_grab():
    box = (290, 465, 305, 487)
    image = image_grab_lib.grab(box)
    grey = ImageOps.grayscale(image)
    a = array(grey.getcolors())
    print(a.sum())
    return a.sum()
def main():
    restart_game()
    print("blip")
    if image_grab() != 577:
        print("Jump")
        press_space()
        time.sleep(1)
        restart_game()

if __name__ == '__main__':
    main()

我希望主函数能够运行并打印“blip”和“jump”,目前正在运行所有其他代码并完全跳过主函数。

显示 PyCharm 中警告的样子 - image

标签: pythonpython-3.xpycharm

解决方案


您的代码无法访问,因为您在 main() 定义之前有一个无限的 while 循环。在声明所有变量后需要 while 循环将其放入 if name == ' main ' 条件的应用程序中,这是一个很好的做法。像这样:

if __name__ == '__main__':
    while True:
        do_something()

推荐阅读