好文档 - 专业文书写作范文服务资料分享网站

Python基础语法 - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

.. . .. . .

python支持面向对象编程;类和对象是面向对象编程的两个主要方面,类创建一个新的类型,对象是这个类的实例。

对象可以使用普通的属于对象的变量存储数据,属于对象或类的变量被称为域;对象也可以使用属于类的函数,这样的函数称为类的方法;域和方法可以合称为类的属性。

域有两种类型--属于实例的或属于类本身;它们分别被称为实例变量和类变量。

类使用关键字class创建,类的域和方法被列在一个缩进块中。

类的方法必须有一个额外的第一个参数,但是在调用时不为这个参数赋值,这个特殊变量指对象本身,按照惯例它的名称是self,类似C#中的this。

class Animal:

pass #empty block

__init__方法 在类的一个对象被创建时调用该方法;相当于c++中的构造函数。

__del__方法 在类的对象被销毁时调用该方法;相当于c++中的析构函数。在使用del删除一个对象时也就调用__del__方法。

Python中所有的类成员(包括数据成员)都是public的;只有一个例外,如果使用的数据成员以双下划线为前缀,则为私有变量。

class Person: Count = 0

def __init__(self, name, age): Person.Count += 1 self.name = name self.__age = age

p = Person(\p1 = Person(\

print Person.Count #2 print p.name #peter

print p.__age #AttributeError: Person instance has no attribute '__age'

继承:为了使用继承,基类的名称作为一个元组跟在类名称的后面;python支持多重继承。下面是一个关于继承的例子:

1 class SchoolMember:

2 '''Represent any school member.''' 3 def __init__(self, name, age):

S. . . . . ..

.. . .. . .

4 self.name = name 5 self.age = age

6 print \ 7

8 def tell(self):

9 '''Tell my details'''

10 print \11

12 class Teacher(SchoolMember): 13 '''Represent a teacher.'''

14 def __init__(self, name, age, salary):

15 SchoolMember.__init__(self, name, age) 16 self.salary = salary

17 print \18

19 def tell(self):

20 SchoolMember.tell(self)

21 print \22

23 class Student(SchoolMember): 24 '''Represent a student.'''

25 def __init__(self, name, age, marks):

26 SchoolMember.__init__(self, name, age) 27 self.marks = marks

28 print \29

30 def tell(self):

31 SchoolMember.tell(self)

32 print \33

34 print SchoolMember.__doc__ 35 print Teacher.__doc__ 36 print Student.__doc__ 37

38 t = Teacher(\39 s = Student(\40

41 members = [t, s] 42

43 for m in members: 44 m.tell()

程序输出如下:

Represent any school member.

S. . . . . ..

.. . .. . .

Represent a teacher. Represent a student.

Initializing a school member. Initializing a teacher

Initializing a school member. Initializing a student

Name: Mr. Li, Age: 30, Salary: 9000 Name: Peter, Age: 25, Marks: 90

八、输入/输出

程序与用户的交互需要使用输入/输出,主要包括控制台和文件;对于控制台可以使用raw_input和print,也可使用str类。raw_input(xxx)输入xxx然后读取用户的输入并返回。

1. 文件输入/输出

可以使用file类打开一个文件,使用file的read、readline和write来恰当的读写文件。对文件读写能力取决于打开文件时使用的模式,常用模式

有读模式(\、写模式(\、追加模式(\,文件操作之后需要调用close方法来关闭文件。

1 test = '''\\

2 This is a program about file I/O. 3

4 Author: Peter Zhange 5 Date: 2011/12/25 6 ''' 7

8 f = file(\ 9 f.write(test) # write text to file 10 f.close() # close the file 11

12 f = file(\13

14 while True:

15 line = f.readline()

16 if len(line) == 0: # zero length indicates the EOF of the file 17 break 18 print line, 19

20 f.close()

2. 存储器

python提供一个标准的模块,成为pickle,使用它可以在一个文件中存储任何python对象,之后可以完整的

S. . . . . ..

.. . .. . .

取出来,这被称为持久地存储对象;还有另外一个模块成为cPickle,它的功能和pickle完全一样,只不过它是用c写的,要比pickle速度快(大约快1000倍)。

import cPickle

datafile = \

namelist = [\

f = file(datafile, \

cPickle.dump(namelist, f) f.close()

del namelist

f = file(datafile)

storednamelist = cPickle.load(f)

print storednamelist #['peter', 'john', 'king']

九、异常

当程序中出现某些异常的状况时,异常就发生了。python中可以使用try ... except 处理。 try:

print 1/0

except ZeroDivisionError, e: print e except:

print \

#integer division or modulo by zero

可以让try ... except 关联上一个else,当没有异常时则执行else。

我们可以定义自己的异常类,需要继承Error或Exception。

class ShortInputException(Exception): '''A user-defined exception class''' def __init__(self, length, atleast): Exception.__init__(self) self.length = length

S. . . . . ..

.. . .. . .

self.atleast = atleast try:

s = raw_input(\ if len(s) < 3:

raise ShortInputException(len(s), 3) except EOFError:

print \except ShortInputException, ex:

print \else:

print \

#The lenght of input is 1, was expecting at the least 3

try...finally try:

f = file(\ while True:

line = f.readline() if len(line) == 0: break time.sleep(2) print line, finally:

f.close()

print \

十、Python标准库

Python标准库是随Pthon附带安装的,包含了大量极其有用的模块。

1. sys模块 sys模块包含系统对应的功能

sys.argv ---包含命令行参数,第一个参数是py的文件名 sys.platform ---返回平台类型

sys.exit([status]) ---退出程序,可选的status(围:0-127):0表示正常退出,其他表示不正常,可抛异常事件供捕获

sys.path ---程序中导入模块对应的文件必须放在sys.path包含的目录中,使用sys.path.append添加自己的模块路径

sys.modules ---This is a dictionary that maps module names to modules which have already been loaded sys.stdin,sys.stdout,sys.stderr ---包含与标准I/O 流对应的流对象 s = sys.stdin.readline()

S. . . . . ..

Python基础语法 - 图文

.......python支持面向对象编程;类和对象是面向对象编程的两个主要方面,类创建一个新的类型,对象是这个类的实例。对象可以使用普通的属于对象的变量存储数据,属于
推荐度:
点击下载文档文档为doc格式
422nc58o2y3bj0w6iip07zlrl1bk8m012yl
领取福利

微信扫码领取福利

微信扫码分享