[Python笔记]Python学习笔记四

模块

在Python中,一个.py文件就是一个模块(Module)

使用模块的好处就是大大提高代码的可维护性,并且可以被其他地方引用。

同时可以避免函数名和变量名的冲突。

Package(包) 每个包目录下面必须有一个 __init__.py文件

这个文件可以是空的,这个文件对应模块名就是当前目录名即包名

 

模块的使用

Python内置了很多模块

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 编写一个属于自己的模块

# 文件的第一个字符串被视为模块的文档注释 'a test module'
# 模块作者
__author__ = 'JoyJoe' import sys def test():
# sys.argv使用列表来存储命令行的所有参数,第一个元素永远都是文件名 args
= sys.argv if len(args) == 1: print 'Hello world!' elif len(args)==2: print 'Hello, %s'%args[1] else: print 'Too many arguments!'
# 在命令行运行文件时,Python解释器会把变量__name__置为 __main__
# 这样如果在其他地方导入该模块时if判断将会失败
# 一般用于运行测试 if __name__ == '__main__': test()

 

导入模块时可以设置别名

try:
    import cStringIO as StringIO
except ImportError:
    import StringIO
try:
    import json
except ImportError:
    import simplejson as json

 

作用域

在Python中,规定__xxx__这样的变量为特殊变量,如__name__, __author__, __doc__等

Python同样在类或模块中没有函数访问权限修饰符

 

第三方模块安装

使用官方推荐的pip 也可以使用easy_install

Python非常强大的一个处理图像的工具库Python Imaging Library (在官网上注册名PIL)

pip install PIL

import Image
im = Image.open('test.png')
print im.format, im.size, im.mode
im.thumbnail((200, 100))
im.save('thumb.jpg', 'JPEG')

常用第三方库:

MySQL-python

numpy

Jinja2

模块的加载过程:Python解释器会搜索当前目录下所有已经安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中

import sys
print sys.path

Python提供了 __future__ 模块,把下一个新版本的特性导入到当前版本中

为了适应Python3.x中的字符串表示方法,在Py2.7中通过unicode_literals来使用新语法

# still running on Python2.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)

Python3中, 所有字符都视为unicode 如果需要使用二进制字符串则必须添加前缀b

Python3中,所有除法都是精确除法

 

from __future__ import division

 

posted @ 2017-03-25 00:29  小碎石  阅读(225)  评论(0编辑  收藏  举报