python - 如何修复:主要功能无法访问 - 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”,目前正在运行所有其他代码并完全跳过主函数。
解决方案
您的代码无法访问,因为您在 main() 定义之前有一个无限的 while 循环。在声明所有变量后需要 while 循环将其放入 if name == ' main ' 条件的应用程序中,这是一个很好的做法。像这样:
if __name__ == '__main__':
while True:
do_something()
推荐阅读
- c++ - 链表节点的访问冲突:C++
- c# - VS2017 未使用实体框架显示带有视图的 MVC 控制器
- r - 命名空间中的并行工作者
- python - X轴上奇怪的年份值
- github - Github 推送通知无法解析主机
- android - 在颤动中显示来自 Firestore 数据的卡片
- javascript - 评论发送 AJAX Uncaught SyntaxError: Unexpected identifier
- ansible - Ansible 不使用 nohup 运行第二个命令
- java - 在 Spring Boot Application @RestController 中获取信息的哪种模式更好,以及如何指定 ANY @Mapping?
- python - 为什么我不能导入 Tensorflow.contrib 我收到 No module named 'tensorflow.python.saved 的错误