python教程重点回顾-1-python基础
##python基础
##函数
##高级功能
###切片
###迭代
###列表生成
###生成器
##函数式编程
###map/reduce
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
还可以用lambda函数进一步简化成:
###filter
###sorted
###延迟计算,闭包
###匿名函数
###装饰器
##模块
###使用模块
第1行和第2行是标准注释,第1行注释可以让这个hello.py文件直接在Unix/Linux/Mac上运行,第2行注释表示.py文件本身使用标准UTF-8编码;
第4行是一个字符串,表示模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档注释;
第6行使用__author__
变量把作者写进去,这样当你公开源代码后别人就可以瞻仰你的大名;
当我们在命令行运行hello模块文件时,Python解释器把一个特殊变量__name__
置为__main__
,而如果在其他地方导入该hello
模块时,if判断将失败,因此,这种if测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是运行测试。
导入模块时,还可以使用别名,这样,可以在运行时根据当前环境选择最合适的模块。比如Python标准库一般会提供StringIO
和cStringIO
两个库,这两个库的接口和功能是一样的,但是cStringIO是C写的,速度更快,所以,你会经常看到这样的写法:
###模块中的作用域
在一个模块中,我们可能会定义很多函数和变量,但有的函数和变量我们希望给别人使用,有的函数和变量我们希望仅仅在模块内部使用。在Python中,是通过_前缀来实现的。
正常的函数和变量名是公开的public
,可以被直接引用,比如:abc
,x123
,PI
等;
类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,比如上面的__author__
,__name__
就是特殊变量,hello模块定义的文档注释也可以用特殊变量__doc__
访问,我们自己的变量一般不要用这种变量名;
类似_xxx和__xxx这样的函数或变量就是非公开的private
,不应该被直接引用,比如_abc
,__abc
等;
###安装第三方模块
在Python中,安装第三方模块,是通过setuptools这个工具完成的。Python有两个封装了setuptools的包管理工具:easy_install
和pip
。目前官方推荐使用pip
。
使用:
查看当前目录、所有已安装的内置模块和第三方模块
###使用_future_
Python提供了__future__模块,把下一个新版本的特性导入到当前版本。
##面向对象编程
###类和实例
其中object
为父类
注意到__init__
方法的第一个参数永远是self
,表示创建的实例本身,因此,在__init__
方法内部,就可以把各种属性绑定到self
,因为self
就指向创建的实例本身。
和静态语言不同,Python允许对实例变量绑定任何数据,也就是说,对于两个实例变量,虽然它们都是同一个类的不同实例,但拥有的变量名称都可能不同
age
属性不是所有实例都有的
###访问限制
如果希望内部属性为私有,内部属性定义时使用_
前缀
###集成和多态
子类重写了父类的方法,使用isinstance(obj, type)
判断对象类型
###获取对象信息
使用type()
获得对象信息
使用dir()
获得对象的所有属性和方法
参考:python教程