推荐学习书目
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 · Aug 6, 2012 · 4742 views
    This topic created in 5026 days ago, the information mentioned may be changed or developed.
    def main():

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

    if __name__=='__main__':
    main()


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

    第一行定义一个函数叫main,他做下面三行的事情。
    这个时候这三行被定义在函数里但还没调用。
    接下来这句就很典型了
    如果这个py是被直接执行的主程序,__name__这个内部变量会置为__main__,如果是被import的话,会置为其他的。所以这句话是说如果当前被当作主程序调用的话,就执行刚刚定义的main函数。
    simapeng
        3
    simapeng  
       Aug 7, 2012
    app=QtGui.QApplication(sys.argv)是定义一个QApplication,每个程序都必须有这个对象,app.exec_()是启动消息分发机制,类似于winmain里的消息分发机制。QT里每个widget都可以直接show,测试起来较为方便。
    wecing
        4
    wecing  
       Aug 7, 2012
    lz问的问题跟pyqt没关系……
    jazdelu
        5
    jazdelu  
    OP
       Aug 7, 2012
    @guoquan 稍微有点理解了。
    hanf
        6
    hanf  
       Aug 8, 2012
    python 是脚本,脚本是从头到尾执行的(如果可以执行的话)
    java 不是脚本,有标准入口
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1006 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 22:16 · PVG 06:16 · LAX 15:16 · JFK 18:16
    ♥ Do have faith in what you're doing.