Python

出自GHOSTUNIX

跳转到: 导航, 搜索

目录

[编辑] Python语言概述

Python,是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。

这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。

目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。

Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty 大蟒蛇飞行马戏团的爱好者。

ABC 是由Guido参加设计的一种教学语言。就Guido本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido认为是非开放造成的。Guido决心在Python中避免这一错误。同时,他还想实现在ABC中闪现过但未曾实现的东西。

就这样,Python在Guido手中诞生了。实际上,第一个实现是在Mac机上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix Shell和C的习惯。

[编辑] 开发环境安装与配置

安装Python解释器 一般来说每个linux发行版都会默认安装python,因为他往往是很多应用的基础设施。然而如果你没有安装Python,也可以通过发行版的包管理器来安装。 在debian中 sudo apt-get install python 即可安装或者升级python

安装python shell Python作为一种解释语言,是可以提供所谓的shell的。就是一个interactive的sandbox。可以用于实验性或者测试用途。

在你最喜欢的shell下

mikedebian% python

Python 2.5.2 (r252:60911, Jul 12 2008, 12:02:40)

[GCC 4.3.1] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>>

就应该可以进入python的shell了。(你可以用Ctrl-D来退出,如果你没有对ctrl-D进行绑定的话。) 然而这个默认的shell不是非常的好用,你可以安装ipython,这个shell提供了自动补全等功能。

sudo apt-get install ipython

[编辑] 基本数据类型

Python的类型系统没有像C++或者Java一样使用严格类型,而是像ruby一样使用了Duck Typing。

所谓Duck Typing,即,"If it quacks like a duck, i would call it a duck"。 所以在Python中没有一个严格的类型的概念,类型是存在但模糊的。

在Python的底层实现中实际上只有一种type,就是'type'。

[编辑] 语法基础

[编辑] 函数与方法

[编辑] 模块

[编辑] 面向对象程序设计

和Java/C++不同,Python是一个纯的面向对象的语言,在Python中是严格的Everything is a object。即便是一个整数或者布尔。

Python的对象模型继承了common lisp中的CLOS(Common Lisp Objective System)中的,“程序即是数据”的设计思想。表示元素定义也可以在运行时像数据一样修改、创建和销毁。(这也是动态语言的基本特性之一)

Python对于成员数据的访问是基于Descriptor的。可以保证成员数据在被修改,绑定,删除是得到相应的notification。

Python对于成员函数的处理是仿照common lisp的,即成员函数不属于某个特定的“类型”,而是独立或者属于一个个别的、独立的实例。在__init__()方法调用的时候会将所有的独立的成员函数复制,并绑定到相应的实例中去。

Python的对象模型是基于container的,所有的成员数据和绑定方法全部都以属性的形式存在于某些container中的。你可以用hasattr来确定这个对象是不是有该属性。

在Python底层实现中,是依靠引用计数来维持基本的垃圾回收的。由于引用计数基于拓扑排序,所以当环形引用时会造成内存泄露。于是在Python的上层模块中实现了一个Mark & Compact的GC,来避免内存泄露。

[编辑] 异常处理

个人工具