zoukankan      html  css  js  c++  java
  • python进阶-- 02 如何使用模块

    1.模块与包的概念

    1.1概念

    模块:代码多了之后,放在一个.py文件中不易维护,将代码拆分到多个.py文件中,每个.py文件就是一个模块。

    包:模块多了之后,也容易重名,将每个开发开发的模块可以放到不同的包中,引用的时候使用包名.模块名。

    1.2优势

    同一变量名的变量在不同模块中互不影响

    同一模块名的模块在不同包中互不影响

    1.3引用举例

    # p1->包名,util->模块名

    >>> import p1.util

    >>> print p1.util.f(2,10)

    1.4如何区分包和普通文件夹

    在文件系统中,一个包就是一个文件夹;

    在python中,每一个包的下面必须要有一个__init__.py文件;

    __init__.py文件即使是空的,也要有。

    2.模块的导入

    2.1直接import

    import math

    >>> math.pow(2, 0.5) # pow是函数

    1.4142135623730951

    >>> math.pi # pi是变量

    3.141592653589793

    2.2使用from ... import xxx

    from math import pow, sin, log

    >>> pow(2, 10)

    1024.0

    >>> sin(3.14)

    0.0015926529164868282

    2.3导入的模块中的方法/变量冲突问题

    直接import的不会有冲突问题

    使用from ... import xxx的如果有冲突,可以使用别名的方式

    from math import log

    from logging import log as logger   # logging的log现在变成了logger

    print log(10)   # 调用的是math的log

    logger(10, 'import from logging')   # 调用的是logging的log

    3.动态导入模块

    3.1背景

    如果导入的模块不存在,Python解释器会报 ImportError 错误;

    有的时候,两个不同的模块提供了相同的功能

    3.2原理

    利用ImportError错误,通过异常处理try-except,我们可以实现动态导入模块

    另,import xxx as xxx可以动态导入相同名称的模块为不同的使用名称

    3.3举例

    try:

        from cStringIO import StringIO

    except ImportError:

        from StringIO import StringIO

    try:

        import simplejson as json

    except ImportError:

        import json

    4.__future__试用新特性

    4.1背景

    Python的新版本会引入新的功能,但是,实际上这些功能在上一个老版本中就已经存在了。要“试用”某一新的特性,就可以通过导入__future__模块的某些功能来实现。

    4.2举例

    # Python 2.7的整数除法运算结果是整数,Python 3.x已经改进了整数的除法运算,“/”除将得到浮点数,“//”除才仍是整数

    >>> print 10/3

    3

    >>> from __future__ import division

    >>> print 10/3

    3.33333333333

    # 在Python 3.x中,字符串统一为unicode,不需要加前缀 u,而以字节存储的str则必须加前缀 b

    >>> from __future__ import unicode_literals

    >>> s = 'am I an unicode?'

    >>> print isinstance(s, unicode)

    True

    5.安装第三方模块

    5.1easy_install

    5.2 python内置的pip(已经内置到2.7.9)

    5.2.1windows安装pip

    安装时候选择pip功能

     

    安装完成后,即可在命令行使用pip install web.py来安装web.py这个第三方模块

     

    5.2.2linux安装pip

    wget https://bootstrap.pypa.io/get-pip.py

    sudo python get-pip.py

    sudo vim /etc/bashrc

    在最后一行添加export PATH=/usr/local/python_2_7_14/bin:$PATH

    参考:

    Python pip 命令不识别

    pip;python包管理工具

    5.2.3pip安装第三方模块

    第三方模块安装完成后,使用import web即可正常使用

    第三方模块寻找:https://pypi.python.org/pypi

    5.3源码 + python setup.py install方法安装

    5.4python常用第三方库

    http://www.cnblogs.com/mmbbflyer/p/5787494.html

    http://www.cnblogs.com/tester-l/p/5735230.html

    http://www.cnblogs.com/aipiaoborensheng/p/7732155.html

  • 相关阅读:
    Python基础知识(八)—字典
    Python基础知识(七)—元组
    Python基础知识(六)—关于列表深拷贝和浅拷贝及内存图
    Python基础知识(六)—列表
    Python基础知识(五)—字符串
    4、FTP、SSH协议简单介绍
    3、apt-get install xxx时,报错信信息: Could not get lock /var/lib/dpkg/lock-frontend
    2、NFS挂载根文件系统失败:Root-NFS: Unable to get mountd port number from server, using default
    EXPORT_SYMBOL是什么?
    用maven建立一个工程2
  • 原文地址:https://www.cnblogs.com/yc913344706/p/7749365.html
Copyright © 2011-2022 走看看