如何在main()函数中使用pass命令在shell中保持代码打开?

时间:2016-01-01 08:41:11

标签: python shell

我正在尝试学习如何构建一个网络浏览器机器人作为其他人的半学习项目,我遇到了障碍。

我用作指南的网站有:

def main():
     pass

他声称保持shell窗口打开他可以运行各种功能,例如获取鼠标位置的x,y线和拍摄屏幕截图。

然而,当我在指南中完全按照它运行我的代码时,它会立即打开和关闭。

我不想要的是,"让它如此紧迫输入关闭shell而不是",需要发生的是窗口保持打开以便我可以输入各种功能。

我做错了什么?我想只是在不同的shell中导入代码并在其外部运行函数吗?

代码:

import os   
import time
import ImageGrab

x_pad = 0   
y_pad = 61

def screenGrab():   
    box = (x_pad,y_pad,x_pad+1919,y_pad+970)    
    im = ImageGrab.grab(box)    
    im.save(os.getcwd() + '\\full_snap__' + str(int(time.time())) + '.png','PNG')

def main(): 
    pass    

if __name__ == '__main__':    
    main()

指南是:http://code.tutsplus.com/tutorials/how-to-build-a-python-bot-that-can-play-web-games--active-11117

1 个答案:

答案 0 :(得分:1)

您有三种方式:

  1. 根据enter image description here在评论中的建议,使用-i选项启动解释器:

    python -i my-script.py
    

    这样,只要脚本完成执行,解释器就会保持打开状态,并显示提示。

  2. 使用Ulrich。这通常用于调试,并且具有与通常的Python提示不同的接口。如果您不熟悉它,它可能不是您的最佳选择。将pass替换为以下两行:

    import pdb
    pdb.set_trace()
    
  3. 使用pdb。这将为您提供一个与通常的Python shell更相似的界面,如果您不熟悉它,可以替代pdb

    import code
    code.interact()
    
  4. 顺便说一句,你本身并没有做错任何事。 pass语句并不意味着“停止Python并启动提示”,它只是需要作为函数或循环的填充函数。