• 迎丰收 晒丰收 庆丰收 2018-10-15
  • “捂脸表情”被注册成商标?申请人不认为商标侵权 2018-10-15
  • 战巡南海、绕岛巡航…空军有“飞出去”的主心骨 2018-10-14
  • 幼儿园要求家长写一万字读后感:不能这样玩家长|幼儿园|家长-教育时讯 2018-10-13
  • 中国故宫文物展在希腊举行 2018-10-13
  • 車·晓 第26期 車企官方降价真相幾何? 2018-10-12
  • 宝沃总裁杨嵩:曾和奔驰宝马同水平 已不能同日而语 2018-10-11
  • 新时代党员干部要有更大的担当和作为 2018-10-10
  • “2018-雷霆”专项行动破获百余起台湾间谍案 2018-10-09
  • 朝韩首脑今起在平壤会晤 “金文会”将聚焦三大议题 2018-10-09
  • 2018顺义啤酒节--北京频道--人民网 2018-10-08
  • 台湾遭遇的“断交潮”有无化解之道? 2018-10-08
  • 习近平会见爱沙尼亚总统卡柳莱德 2018-10-08
  • 中国空间站研制建设正有序开展 坚持和平利用 2018-10-07
  • Idlib to further divide Ankara and Moscow 2018-10-06
  • 【python教程】Python ???/h1>
    栏目: python 发布于: 2014-11-25 07:00:43

    Python ???/h1>

    ??槿媚隳芄挥新呒刈橹愕腜ython代码段。

    把相关的代码分配到一个 ??槔锬苋媚愕拇敫糜?,更易懂。

    ??橐彩荘ython对象,具有随机的名字属性用来绑定或引用。

    简单地说,??榫褪且桓霰4媪薖ython代码的文件。??槟芏ㄒ搴?,类和变量。??槔镆材馨芍葱械拇?。

    例子

    一个叫做aname的??槔锏腜ython代码一般都能在一个叫aname.py的文件中找到。下例是个简单的??閟upport.py。

    def print_func( par ):
       print "Hello : ", par
       return
    


    import 语句

    想使用Python源文件,只需在另一个源文件里执行import语句,语法如下:

    import module1[, module2[,... moduleN]
    

    当解释器遇到import语句,如果??樵诘鼻暗乃阉髀肪毒突岜坏既?。

    搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入??閔ello.py,需要把命令放在脚本的顶端:

    
    #!/usr/bin/python
     
    # 导入???
    import support
     
    # 现在可以调用??槔锇暮?
    support.print_func("Zara")
    

    以上实例输出结果:

    Hello : Zara
    

    一个??橹换岜坏既胍淮?,不管你执行了多少次import。这样可以防止导入??楸灰槐橛忠槐榈刂葱?。



    From…import 语句

    Python的from语句让你从??橹械既胍桓鲋付ǖ牟糠值降鼻懊占渲?。语法如下:

    from modname import name1[, name2[, ... nameN]]
    

    例如,要导入??閒ib的fibonacci函数,使用如下语句:

    from fib import fibonacci
    

    这个声明不会把整个fib??榈既氲降鼻暗拿占渲?,它只会将fib里的fibonacci单个引入到执行这个声明的??榈娜址疟?。



    From…import* 语句

    把一个??榈乃心谌萑嫉既氲降鼻暗拿占湟彩强尚械?,只需使用如下声明:

    from modname import *
    

    这提供了一个简单的方法来导入一个??橹械乃邢钅?。然而这种声明不该被过多地使用。



    定位???/h2>

    当你导入一个???,Python解析器对??槲恢玫乃阉魉承蚴牵?/p>

    • 当前目录
    • 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录
    • 。
    • 如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/

    ??樗阉髀肪洞娲⒃趕ystem??榈膕ys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。



    PYTHONPATH变量

    作为环境变量,PYTHONPATH由装在一个列表里的许多目录组成。PYTHONPATH的语法和shell变量PATH的一样。

    在Windows系统,典型的PYTHONPATH如下:

    set PYTHONPATH=c:\python20\lib;
    

    在UNIX系统,典型的PYTHONPATH如下:

    set PYTHONPATH=/usr/local/lib/python


    命名空间和作用域

    变量是拥有匹配对象的名字(标识符)。命名空间是一个包含了变量名称们(键)和它们各自相应的对象们(值)的字典。

    一个Python表达式可以访问局部命名空间和全局命名空间里的变量。如果一个局部变量和一个全局变量重名,则局部变量会覆盖全局变量。

    每个函数都有自己的命名空间。类的方法的作用域规则和通常函数的一样。

    Python会智能地猜测一个变量是局部的还是全局的,它假设任何在函数内赋值的变量都是局部的。

    因此,如果要给全局变量在一个函数里赋值,必须使用global语句。

    global VarName的表达式会告诉Python, VarName是一个全局变量,这样Python就不会在局部命名空间里寻找这个变量了。

    例如,我们在全局命名空间里定义一个变量money。我们再在函数内给变量money赋值,然后Python会假定money是一个局部变量。然而,我们并没有在访问前声明一个局部变量money,结果就是会出现一个UnboundLocalError的错误。取消global语句的注释就能解决这个问题。

    #!/usr/bin/python
     
    Money = 2000
    def AddMoney():
       # 想改正代码就取消以下注释:
       # global Money
       Money = Money + 1
     
    print Money
    AddMoney()
    print Money
    


    dir()函数

    dir()函数一个排好序的字符串列表,内容是一个??槔锒ㄒ骞拿?。

    返回的列表容纳了在一个??槔锒ㄒ宓乃心??,变量和函数。如下一个简单的实例:

    #!/usr/bin/python
     
    # 导入内置math???
    import math
     
    content = dir(math)
     
    print content;

    以上实例输出结果:

    ['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 
    'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 
    'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log',
    'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 
    'sqrt', 'tan', 'tanh']

    在这里,特殊字符串变量__name__指向??榈拿?,__file__指向该??榈牡既胛募?。



    globals()和locals()函数

    根据调用地方的不同,globals()和locals()函数可被用来返回全局和局部命名空间里的名字。

    如果在函数内部调用locals(),返回的是所有能在该函数里访问的命名。

    如果在函数内部调用globals(),返回的是所有在该函数里能访问的全局名字。

    两个函数的返回类型都是字典。所以名字们能用keys()函数摘取。



    reload()函数

    当一个??楸坏既氲揭桓鼋疟?,??槎ゲ悴糠值拇胫换岜恢葱幸淮?。

    因此,如果你想重新执行??槔锒ゲ悴糠值拇?,可以用reload()函数。该函数会重新导入之前导入过的???。语法如下:

    reload(module_name)

    在这里,module_name要直接放??榈拿?,而不是一个字符串形式。比如想重载hello???,如下:

    reload(hello)


    Python中的包

    包是一个分层次的文件目录结构,它定义了一个由??榧白影?,和子包下的子包等组成的Python的应用环境。

    考虑一个在Phone目录下的pots.py文件。这个文件有如下源代码:

    #!/usr/bin/python
     
    def Pots():
       print "I'm Pots Phone"
       

    同样地,我们有另外两个保存了不同函数的文件:

    • Phone/Isdn.py 含有函数Isdn()
    • Phone/G3.py 含有函数G3()

    现在,在Phone目录下创建file __init__.py:

    • Phone/__init__.py

    当你导入Phone时,为了能够使用所有函数,你需要在__init__.py里使用显式的导入语句,如下:

    from Pots import Pots
    from Isdn import Isdn
    from G3 import G3
    

    当你把这些代码添加到__init__.py之后,导入Phone包的时候这些类就全都是可用的了。

    #!/usr/bin/python
     
    # Now import your Phone Package.
    import Phone
     
    Phone.Pots()
    Phone.Isdn()
    Phone.G3()
    

    以上实例输出结果:

    I'm Pots Phone
    I'm 3G Phone
    I'm ISDN Phone
    

    如上,为了举例,我们只在每个文件里放置了一个函数,但其实你可以放置许多函数。你也可以在这些文件里定义Python的类,然后为这些类建一个包。


    本文转载自:w3cschool

    本站文章除注明转载外,均为本站原创或编译?;队魏涡问降淖?,但请务必注明出处。
    转载请注明:文章转载自 七星彩票平台
    本文标题:【python教程】Python ???/div>
    IT技术书籍推荐:
    JavaScript高级程序设计(第3版)
    JavaScript高级程序设计(第3版)
    泽卡斯 (Zakas. Nicholas C.) (作者), 李松峰 (译者), 曹力 (译者)
    《JavaScript高级程序设计(第3版)》是JavaScript超级畅销书的最新版。ECMAScript 5和HTML5在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为JavaScript增添了很多适应未来发展的新特性?!禞avaScript高级程序设计(第3版)》这一版除增加5章全新内容外,其他章节也有较大幅度的增补和修订,新内容篇幅约占三分之一。全书从JavaScript语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax与Comet服务器端通信,HTML5表单、媒体、Canvas(包括WebGL)及Web Workers、地理定位、跨文档传递消息、客户端存储(包括IndexedDB)等新API,还介绍了离线应用和与维护、性能、部署相关的最佳开发实践?!禞avaScript高级程序设计(第3版)》附录展望了未来的API和ECMAScript Harmony规范。