您的位置:首页 > 编程语言 > Python开发

python学习——第二天

2006-08-22 22:04 232 查看
模块:模块是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。

使用其它模块:当Python执行import sys语句的时候,它在sys.path变量中所列目录中寻找sys.py模块。如果找到了这个文件,这个模块的主块中的语句将被运行,然后这个模块将能够被你使用。初始化过程仅在我们第一次输入模块的时候进行。

字节码:一种方法是创建字节编译的文件,这些文件以.pyc作为扩展名。这种编译好了的东西,原理上因该类似java的字节码。

命令行参数,import:如果想直接输入argv变量到程序中(避免在每次使用它时打sys.),那么你可以使用from sys import argv语句。如果想要输入所有sys模块使用的名字,那么你可以使用from sys import *语句。如:
from mymodule import sayhi, version
或者
from mymodule import *
但是不提倡这种方式

__name__:每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。
if __name__ == '__main__':
print 'This program is being run by itself'
else:
print 'I am being imported from another module'

dir:可以使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。
del用来删除一个变量/名称。

list:list是处理一组有序项目的数据结构。列表中的项目应该包括在方括号中。一旦创
建了一个列表,就可以添加、删除或是搜索列表中的项目。
元组和列表十分类似,只不过元组和字符串一样是不可变的,即你不能修改元组。元组通过圆括号中用逗号分割的项目定义。
含有0个或1个项目的元组。一个空的元组由一对空的圆括号组成,如myempty = ()。然而,含有单个元素的元组就有点奇怪。必须在第一个(唯一一个)项目后跟一个逗号,这样Python才能区分元组和表达式中一个带圆括号的对象。即如果你想要的是一个包含项目2的元组的时候,你应该指明singleton = (2 , )。
eg:
>>> a=(0) #这里(0)是一个表达式,值为0
>>> print a
0
>>> a=(0,) #这里是一个含有一个元素的元组
>>> print a
(0,)

变量,类型?一个变量可以开始当整型用,之后又付给他字符串值。
eg:
>>> a=100 #整型
>>> a
100
>>> a = [1,2,4,a] #list
>>> print a
[1, 2, 4, 100]
>>>

printf:使用用元组打印,类似printf函数:
>>> age=10
>>> name='xiaohua'
>>> print '%s is %d years old' % (name,age)
xiaohua is 10 years old
>>> print 'my name is %s' % name
my name is xiaohua
>>> print 'my name is %s' %(name)
my name is xiaohua
>>> print 'my name is %s' %(name,)
my name is xiaohua

索引,切片:索引同样可以是负数,在那样的情况下,位置是从序列尾开始计算的。因此,shoplist[-1]表示序列的最后一个元素而shoplist[-2]序列的倒数第二个项目。切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割。记住数是可选的,而冒号是必须的。列表、元组和字符串都是序列,序列的两个主要特点是索引操作符和切片操作符。

引用:当你创建一个对象并给它赋一个变量的时候,这个变量仅仅引用那个对象,而不是表示这个对象本身!这一点类似java。

浅拷贝,深拷贝:如果想要复制一个列表或者类似的序列或者其他复杂的对象(不是如整数那样的简单对象),那么必须使用切片操作符来取得拷贝。如果只是想要使用另一个变量名,两个名称都引用同一个对象。

类的成员函数:类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是self。

构造函数,析构函数:__init__方法在类的一个对象被建立时,马上运行。类似构造函数的作用。还有一个特殊的方法__del__,它在对象消逝的时候被调用。类似析构函数。
当对象不再被使用时,__del__方法运行,但是很难保证这个方法究竟在什么时候运行。如果你想要指明它的运行,就得使用 del语句

类的变量:由一个类的所有对象(实例)共享使用。类似c++类的静态成员
对象的变量:由类的每个对象/实例拥有。类似c++类的普通成员

self:不像在c++中,python定义类的方法的时候,应用成员变量也要使用self.xxx
只能使用self变量来参考同一个对象的变量和方法。这被称为属性参考。

Python中所有的类成员(包括数据成员)都是公共的 ,所有的方法都是有效的。

如何继承:为了使用继承,我们把基本类的名称作为一个元组跟在定义类时的类名称之后。eg:
class Student(SchoolMember):

继承情况下的构造函数:派生类构造函数不会自动调用基类构造函数,需要我们自己动手:我们注意到基本类的__init__方法专门使用self变量调用,这样我们就可以初始化对象的基本类部分。这一点十分重要——Python 不会自动调用基本类的构造函数,你得亲自调用它。

序列化:Python提供一个标准的模块,称为pickle。使用它你可以在一个文件中储存任何Python对象,之后你又可以把它完整无缺地取出来 。还有另一个模块称为cPickle,它的功能和pickle模块完全相同,只不过它是用C语言编写的,因此要快得多.

别名:import..as语法

异常处理:我们把所有可能引发错误的语句放在try块中,然后在except从句/块中处理所有的错误和异常。except从句可以专门处理单一的错误或异常,或者一组包括在圆括号内的错误/异常。如果没有给出错误或异常的名称,它会处理所有的错误和异常。对于每个try
从句,至少都有一个相关联的except从句。还可以让try..catch块关联上一个else从句。当没有异常发生的时候,else从句将被执行。

你可以使用raise语句引发异常。还得指明错误/异常的名称和伴随异常触发的异常对象。

try..finally

列表综合
listone = [2, 3, 4]
listtwo = [2*i for i in listone if i > 2]

特殊参数:由于在args变量前有*前缀,所有多余的函数参数都会作为一个元组存储在args中。如果使用的是**前缀,多余的参数则会被认为
是一个字典的键/值对。

lambda语句被用来创建新的函数对象,并且在运行时返回它们。
exec语句用来执行储存在字符串或文件中的Python语句
exec 'print "Hello World"'
eval语句用来计算存储在字符串中的有效Python表达式。
eval('2*3')

断言:assert语句用来声明某个条件是真的。
如果对应的语句不是真的,就引发一个异常。

repr函数:用来取得对象的规范字符串表示。反引号(也称转换符)可以完成相同的功能。注意,在大多数时候有eval(repr
(object)) == object。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: