Day-7: 模块知识

  Python中,一个.py文件就是一个模块(module);而,包含了多个模块的一个目录,称为包。

  每一个包中,都包含一个_init_.py文件,可以是一个空文件,这是Python将普通目录识别为包的特征点。

  模块的文件名是directory.module,前面是包含该模块的包的名字,后面是该模块的名字,例如:

  文件www.py的模块名就是mycompany.web.www,两个文件utils.py的模块名分别是mycompany.utilsmycompany.web.utils

  • 使用模块

  导入模块:

  1.import sys

  2.import cStringIO as StringIO,导入模块同时另命名。配合错误检查功能,可以保证运行环境选择最合适的模块,使程序具有更强的鲁棒性。

try:
    import cStringIO as StringIO
except ImportError: # 导入失败会捕获到ImportError
    import StringIO
  • 作用域

  正常的函数和变量名是公开的(public),可以被直接引用,比如:abcx123PI等;类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,__author__显示作者,__name__显示函数名字,__doc__显示文档字符串;类似_xxx__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc__abc等;

def _private_1(name):
    return 'Hello, %s' % name

def _private_2(name):
    return 'Hi, %s' % name

def greeting(name):
    if len(name) > 3:
        return _private_1(name)
    else:
        return _private_2(name)

  像_private_2这种私有函数,由于外部调用时,用不到,所以用私有函数隐藏起来。

  • 安装第三方模块

  shell命令行输入:pip install moudule_name,会依据你输入的模块名搜索官网pypi.python.org上的该模块。

  另外,由于官网上模块对应的电脑位数不同,可能无法使用,可以先到国内的非官方库中下载相应的模块,放入C:\Python27\Scripts中后,命令行运行pip install ****,就可以了。

  • __future__模块

  对于旧版本的代码在新版本中维护时,一次性换到新版本中,可能会一次性产生许多错误,不便调试,使用__future__模块后,可以慢慢地针对新版本改进点进行修改。

# still running on Python 2.7

from __future__ import unicode_literals

print '\'xxx\' is unicode?', isinstance('xxx', unicode)
print 'u\'xxx\' is unicode?', isinstance(u'xxx', unicode)
print '\'xxx\' is str?', isinstance('xxx', str)
print 'b\'xxx\' is str?', isinstance(b'xxx', str)

  注:本文为学习廖雪峰Python入门整理后的笔记

posted @ 2017-09-10 20:44  倔强的小蚂蚁  阅读(132)  评论(0编辑  收藏  举报