Python是一种解释性的编程语言。就象Java一样,源代码必须首先由编译器转换成字节瘁
(byte code),然后再由解释器来执行字节码。和Java不一样的是,Python的编译器和解释器
都是一个程序。因此,源代码也可以直接交给这个编译器/解释器来执行。其实,源代码还是先
转换成了字节码,只是没有存在硬盘上,而是直接执行了。某些情况下,这种方式要比Java的
“编辑-编译-修改-再编译-执行”方式效率要高,特别是在写一些小规模的程序时。
Python是一种面向对象的编程语言。所有的内置(built-in)数据类型都是类:整数(int)、
浮点(float)、串(string)、布尔(boolean)、mapping、sequence,等等。经常你
会看到一些老鸟写的程序里有类似这样的代码:idx = "book.txt".find("txt") 乍一看,怎么
字符串常量还能有方法呢?其实,如果想到Python的字符串常量也是其类型的实例(instance),
也就是对象,那么这样用当然也就不奇怪了。
在Python类定义中,类构造器(constructors)必须用 __init__命名,析构器(destructors)
必须用 __del__命名。Python类的构造器不会自动掉用父类的构造器,子类必须在其构造器中
显式地调用父类的构造器。子类可以选择调用父类构造器的时机,比C++和Java又要灵活一些。
相应地,子类的析构器也需要显式地调用父类的析构器。
Python使用引用计数(reference counting)来简化内存管理,程序员基本上不用关心
内存管理的问题,但是要注意避免循环引用(cyclic reference)。变量生成时,其所指对象
的引用计数为一。每次变量出现在等号的右边,或者出现在方法或函数调用实参表里,其所指对
象的引用计数加一。当一个变量out of scope的时候,其所指对象的引用计数会被减一。如果计
数值为零,对象的析构器会被调用。
Python同时还是一种过程式(procedural)的编程语言,有条件判断、循环、函数等常见的控制
结构。不像Java,类对Python程序不是必须的。一个程序可以写出来完全没有类的定义,从头到
尾都是free functions和函数调用(function calls)。这点上,Python和C++类似。
大概最有争议性的是Python对源代码格式的要求。不像C家族的编程语言,Python不是自由格式
的。Python的scope是靠行首缩进来界定的,而不是匹配的括号。比方说,如果一个类的定义起
始于第一列,那么,类中所有成员及方法必须出现在第一列以后,并且处于同一层次的语句必须
出现在相同的列上。这个特点的初衷是为了维护程序的可读性,也确实达成了目的。大部分的
Python源代码都是排列得整整齐齐的,风格基本接近。但我个人认为有一点矫枉过正了。
每一个Python源代码文件可以包含一个或多个的类、free functions。多个源文件在一个文件
系统目录(directory)下可以成为一个模块(module),只要这个目录中有一个名为
__init__.py的文件存在。这个文件甚至可以是空的。模块可以被其他Python代码引入
(import),用类似于Java的“import graphic.2D.text”。模块也是Python最常见的代码
重用形式。Python的编译器和解释器会在缺省的和指定的路径中搜索被引入的模块。
Python的名字空间有一点古怪,不太容易说清清楚。对于初学者来说,记住在函数和类方法中存
取全局变量是一定要事先用“global foo”声明。当然,尽量少用全局变量这个金科玉律对
python也是适用的。
随着Python编译器/解释器一起发行的有大概上百个模块,涵盖了从字符串匹配,xml parsing,
操作系统功能到电子邮件处理等等各个领域。由于这些模块大部分是由来自世界各地的Python使
用者贡献的,在早期也没有比较正式的命名规范,每个人都有自己的风格。对于习惯了Java严谨
命名规范的人来说,Python看起来就太不“专业”了。这应该也是其他open source软件的一个
特点吧,如果不是问题的话。
分享到:
相关推荐
Python基础语法合集.pdfPython基础语法合集.pdfPython基础语法合集.pdfPython基础语法合集.pdfPython基础语法合集.pdfPython基础语法合集.pdfPython基础语法合集.pdfPython基础语法合集.pdfPython基础语法合集.pdf
python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础python爬虫基础...
python基础教程源代码-python基础教程第三版源代码 【实例简介】 python基础教程第三版源代码 python基础教程第三版源代码 【实例截图】 【核⼼代码】 Beginning_Python_version3_SourceCode Beginning Python_...
【Python基础入门教程 Python语言编程导论】课程列表 Python基础入门教程 Python语言编程导论 Python应用案例1 (共12页).ppt Python基础入门教程 Python语言编程导论 Python应用案例二 (共24页).ppt Python基础...
Python基础教程 第三版 高清版 Python基础教程 第三版 高清版
python基础资料.txtpython基础资料.txtpython基础资料.txtpython基础资料.txtpython基础资料.txtpython基础资料.txtpython基础资料.txtpython基础资料.txtpython基础资料.txtpython基础资料.txtpython基础资料.txt...
Python基础课件(共282张PPT)全文共282页,当前为第1页。 第一章 进入(jìnrù)python3.5的精彩世界 第二页,共二百八十二页。 Python基础课件(共282张PPT)全文共282页,当前为第2页。 前言(qián yán) Python 简介...
【Python基础入门教程 Python语言编程导论】课程列表 Python基础入门教程 Python语言编程导论 Python应用案例1 (共12页).ppt Python基础入门教程 Python语言编程导论 Python应用案例二 (共24页).ppt Python基础...
python 基础教程 第二版 高清 书签 中文: 本书包括Python程序设计的方方面面,首先从Python的安装开始,随后介绍了Python的基础知识和基本概念,包括列表、元组、字符串、字典以及各种语句。然后循序渐进地介绍了...
python基础培训.ppt python基础培训.ppt python基础培训.ppt
python基础教程至60课(基础) 【Python 第1课】安装 6 【Python 第2课】print 7 【Python 第3课】IDE 10 【Python 第4课】输入 12 【Python 第5课】变量 14 【Python 第6课】bool 16 【Python 第7课】if 19 【Python...
【Python教程】Python基础语法.docx【Python教程】Python基础语法.docx【Python教程】Python基础语法.docx【Python教程】Python基础语法.docx【Python教程】Python基础语法.docx【Python教程】Python基础语法.docx...
最全Python基础的知识点复习完整版
Python基础入门教程 由浅入深讲解清晰 第1章 基础知识 (共44页).ppt Python基础入门教程 由浅入深讲解清晰 第2章 Python序列 (共68页).ppt Python基础入门教程 由浅入深讲解清晰 第3章 选择与循环 (共44页)....
Python基础代码和截图Python基础代码和截图Python基础代码和截图Python基础代码和截图Python基础代码和截图Python基础代码和截图Python基础代码和截图Python基础代码和截图Python基础代码和截图Python基础代码和截图...
Python入门基础教程全套.PPT,Python入门基础教程全套.PPT,Python入门基础教程全套.PPT,Python入门基础教程全套.PPT,Python入门基础教程全套.PPT,Python入门基础教程全套.PPT,Python入门基础教程全套.PPT,...
完整图文版教程 优质的Python基础入门教程 02、程序的灵魂-算法 (共11页).pptx 完整图文版教程 优质的Python基础入门教程 03、Python布尔类型复习4 (共9页).pptx 完整图文版教程 优质的Python基础入门教程 03、...
Python基础教程Python基础教程Python基础教程Python基础教程Python基础教程Python基础教程
Python基础与大数据应用-习题答案.zip
python基础教程配套源码,