zoukankan      html  css  js  c++  java
  • Python 教程阅读笔记(五):模块

    模块是一个包含Python定义和语句的文件。文件名为模块名加上.py后缀

    在模块内,模块名可由__name__变量引用。

    使用import  module name来导入模块,这样就可使用模块内的所有函数了

    函数调用使用 module.function 方式

    每个模块都有其私有的符号表,在该模块中可被所有函数作为全局符号表使用

    导入的其他方式:  from  modulename import funcname1,funcname2

    而这种方式一般是不被推荐的,因为有屏蔽已定义函数的风险

    每个模块只导入解释器会话一次,若模块改变,需要重启解释器,或者使用modulename.reload()

    如果以python modulename.py  <args>运行模块 __name__会设置为__main__

    因此可在结尾使用以下代码

    if __name__ == "__main__":

    import sys

         fib(int(sys.argv[1]))

    这样处理后,模块文件就像脚本一样,可执行了

    模块搜索路径:

    1.输入脚本所在路径

    2.PYTHONPATH环境变量对应的路径

    注意脚本名不能与标准模块名重名

    python 文件的编译:

    1.-O 目前只移除assert语句,生成.pyo文件

    2.-OO 目前只移除__doc__字符串

    3..pyc或.pyo只是载入较快,而不是运行较快

    4.当在命令行执行脚本时,不会生成.pyc或.pyo文件

    5.可以有 .pyc而没有.py

    6.compileall可创建.pyc文件 使用 –O生成 .pyo

    dir()函数用来发现模块中包含有哪些函数,没有参数时,返回当前定义的名字

    import sys

    sys.ps1  主提示符

    sys.ps2  副提示符

    import builtins

    dir(builtins)

    包:用来封装模块,__init__.py用来让python把目录作为包含包

    当使用from package import item,item可以是包中的子模块,或包中定义的其他名字,如函数,类,或变量。import语句先测试包中是否含有该item,若没有,就把它当做为是模块名,然后载入,如果无法找到,将会抛出ImportError异常

    当使用import item.subitem.subsubitem,除了最后一个item每个item都必须是个包;最后一个item必须是模块或包,不能使类,函数或变量

    from package import *  这会导入__all__变量对应的模块,否则不导入任何子模块,导入__init__中的所有名字,及之前显示用import导入的子模块

    注意from Package import specific_submodule是推荐的方法

    包内索引,可以使用from module import name,也可使用.,..,注意main模块必须使用绝对导入

    from . import echo

    from .. import formats

    from ..filters import equalizer

    __path__属性用来初始化包含多个包的目录名的列表

  • 相关阅读:
    PRTG安装
    如何诊断windows性能问题
    windows性能监控
    PAM 認 證 模 組
    RHEL磁盘修复
    RHEL下修改市区
    Recover database using backup controlfile until cancel
    Cancel-Based Recovery
    北京、上海的人口并不多
    swoole中http_server的配置与使用
  • 原文地址:https://www.cnblogs.com/westwind/p/2505568.html
Copyright © 2011-2022 走看看