一.Python模块
导入模块:
>>> import math
>>> math.pow(2,2)
4.0
>>>
导入指定函数:
>>> from math import pow,sin,log
>>> pow(2,10)
1024.0
>>> sin(90)
0.8939966636005579
>>>
使用from example import function时出现的名字冲突问题:
>>> from math import log
>>> from logging import log as logger
>>> print log(10)
2.30258509299
>>> logger(10,'importt from logging')
>>>
动态导入模块:try:except ImportError:
>>> try:from cStringIO import StringIO
except ImportError:
from StringIO import StringIO
使用__future__:
当新版本的一个特性与旧版本不兼容时,该特性将会在旧版本中添加到__future__中,以便旧的代码能在旧版本中测试新特性。
要试用某一新的特新,就可以导入__future__模块的功能来实现
在Python 2.7中:
>>> 10 / 3
3
在Python 3.x中:
>>> 10 / 3
3.3333333333333335
>>> 10 // 3
3
在2.7中试用3.x的功能:
>>> from __future__ import division
>>> print 10 / 3
3.3333333333333335
Python管理第三方模块的方式:
1.easy_install
2.pip(推荐,内置在2.7.9中)
确保安装了pip的情况下在命令提示符输入:pip install web.py(//第三方模块)等待下载就可以了
二.Python面向对象特征:
创建一个类,初始化两个该类的示例,进行打印和对比操作:
class Person(object):
pass
xiaoming=Person()
xiaohong=Person()
print xiaoming
print xiaohong
print xiaoming==xiaohong
>>>
<__main__.Person object at 0x02840970>
<__main__.Person object at 0x0295C650>
False
创建一个类,初始化三个类的实例,给增加属性(python是动态语言,对于每个属性都直接可以给他们赋值):
class Person(object):
pass
p1 = Person()
p1.name = 'Bart'
p2 = Person()
p2.name = 'Adam'
p3 = Person()
p3.name = 'Lisa'
L1 = [p1, p2, p3]
L2 = sorted(L1,lambda p1,p2:cmp(p1.name,p2.name))
print L2[0].name
print L2[1].name
print L2[2].name
>>>
Adam
Bart
Lisa
尽管python可以给示例随便增加属性,但是,现实世界中同一个类应该拥有相同的属性,此时我们使用__init__() 方法来同意定义属性,类似java中的构造方法,第一个参数必须是self,如下:
class Person(object):
def __in