V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
jazdelu
V2EX  ›  Python

求解释代码,Pyqt4相关。

  •  
  •   jazdelu · 2012-08-06 22:35:09 +08:00 · 3869 次点击
    这是一个创建于 4484 天前的主题,其中的信息可能已经有所发展或是发生改变。
    def main():

    app=QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

    if __name__=='__main__':
    main()


    最近在看教程学pyqt4的gui编程
    想知道每段程序最后面这段代码的意思
    如果这里有java大神最好能用java来做个类比。
    6 条回复    1970-01-01 08:00:00 +08:00
    ayanamist
        1
    ayanamist  
       2012-08-06 22:56:50 +08:00
    Python和Java不同。Java有统一的调用接口main函数,所以声明main函数后会自动得到执行。而Python脚本里的所有代码都会立刻得到执行,哪怕是在被import时也一样,所以要限定一下,让某些代码只能直接执行时运行。最后两行就是干这个的。
    guoquan
        2
    guoquan  
       2012-08-07 01:14:18 +08:00
    python都得当成脚本来看,就是一行一行执行,main函数也不会天生被调用。

    第一行定义一个函数叫main,他做下面三行的事情。
    这个时候这三行被定义在函数里但还没调用。
    接下来这句就很典型了
    如果这个py是被直接执行的主程序,__name__这个内部变量会置为__main__,如果是被import的话,会置为其他的。所以这句话是说如果当前被当作主程序调用的话,就执行刚刚定义的main函数。
    simapeng
        3
    simapeng  
       2012-08-07 01:51:43 +08:00
    app=QtGui.QApplication(sys.argv)是定义一个QApplication,每个程序都必须有这个对象,app.exec_()是启动消息分发机制,类似于winmain里的消息分发机制。QT里每个widget都可以直接show,测试起来较为方便。
    wecing
        4
    wecing  
       2012-08-07 12:54:32 +08:00
    lz问的问题跟pyqt没关系……
    jazdelu
        5
    jazdelu  
    OP
       2012-08-07 19:45:23 +08:00
    @guoquan 稍微有点理解了。
    hanf
        6
    hanf  
       2012-08-08 11:46:52 +08:00
    python 是脚本,脚本是从头到尾执行的(如果可以执行的话)
    java 不是脚本,有标准入口
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2338 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 01:00 · PVG 09:00 · LAX 17:00 · JFK 20:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.