简明pyton教程学习笔记 7-10 对象+输入输出+异常+标准库+更多内容
来源:互联网 发布:软件实施工程师职责 编辑:程序博客网 时间:2024/05/11 04:37
整数是int类的对象。
self = this
__init__ = 构造函数 __del__=解构函数
直接定义的属于类,用self定义的属于对象。
所有的类成员(方法和数据)都是公共的。如果你使用的数据成员名称以 双下划线前缀 比如__privatevar,Python的名称管理体系会有效地把它作为私有变量。
如果某个变量只想在类或对象中使用,就应该以单下划线前缀。而其他的名称都将作为公共的,可以被其他类/对象使用。记住这只是一个惯例,并不是Python所要求的(与双下划线前缀不同)。
class SchoolMember:
'''Represents any school member.'''
def __init__(self, name, age):
self.name = name
self.age = age
print '(Initialized SchoolMember: %s)' % self.name
def tell(self):
'''Tell my details.'''
print 'Name:"%s" Age:"%s"' % (self.name, self.age),
class Teacher(SchoolMember):
'''Represents a teacher.'''
def __init__(self, name, age, salary):
SchoolMember.__init__(self, name, age)
self.salary = salary
print '(Initialized Teacher: %s)' % self.name
def tell(self):
SchoolMember.tell(self)
print 'Salary: "%d"' % self.salary
t = Teacher('Mrs. Shrividya', 40, 30000)
t.tell();
Python不会自动调用基本类的constructor,你得亲自专门调用它。
==================================================================
#!/usr/bin/python
# Filename: using_file.py
poem = '''\
Programming is fun
When the work is done
if you wanna make your work also fun:
use Python!
'''
f = file('poem.txt', 'w') # open for 'w'riting
f.write(poem) # write text to file
f.close() # close the file
f = file('poem.txt')
# if no mode is specified, 'r'ead mode is assumed by default
while True:
line = f.readline()
if len(line) == 0: # Zero length indicates EOF
break
print line,
# Notice comma to avoid automatic newline added by Python
f.close() # close the file
Python提供一个标准的模块,称为pickle。使用它你可以在一个文件中储存任何Python对象,之后你又可以把它完整无缺地取出来。这被称为 持久地 储存对象。
还有另一个模块称为cPickle,它的功能和pickle模块完全相同,只不过它是用C语言编写的,因此要快得多(比pickle快1000倍).
#!/usr/bin/python
# Filename: pickling.py
import cPickle as p
#import pickle as p
shoplistfile = 'shoplist.data'
# the name of the file where we will store the object
shoplist = ['apple', 'mango', 'carrot']
# Write to the file
f = file(shoplistfile, 'w')
p.dump(shoplist, f) # dump the object to a file
f.close()
del shoplist # remove the shoplist
# Read back from the storage
f = file(shoplistfile)
storedlist = p.load(f)
print storedlist
======================================================
让try..catch块关联上一个else从句。当没有异常发生的时候,else从句将被执行。
#!/usr/bin/python
# Filename: raising.py
class ShortInputException(Exception):
'''A user-defined exception class.'''
def __init__(self, length, atleast):
Exception.__init__(self)
self.length = length
self.atleast = atleast
try:
s = raw_input('Enter something --> ')
if len(s) < 3:
raise ShortInputException(len(s), 3)
# Other work can continue as usual here
except EOFError:
print '\nWhy did you do an EOF on me?'
except ShortInputException, x:
print 'ShortInputException: The input was of length %d, \
was expecting at least %d' % (x.length, x.atleast)
else:
print 'No exception was raised.'
#!/usr/bin/python
# Filename: finally.py
import time
try:
f = file('poem.txt')
while True: # our usual file-reading idiom
line = f.readline()
if len(line) == 0:
break
time.sleep(2)
print line,
finally:
f.close()
print 'Cleaning up...closed the file'
======================================================
Python标准库中的sys模块和os模块的一部分功能
======================================================
#!/usr/bin/python
# Filename: list_comprehension.py
listone = [2, 3, 4]
listtwo = [2*i for i in listone if i > 2]
print listtwo
>>> def powersum(power, *args):
... '''Return the sum of each argument raised to specified power.'''
... total = 0
... for i in args:
... total += pow(i, power)
... return total
...
>>> powersum(2, 3, 4)
25
由于在args变量前有*前缀,所有多余的函数参数都会作为一个元组存储在args中。是**前缀,多余的参数则会被认为是一个字典的键/值对。
#!/usr/bin/python
# Filename: lambda.py
def make_repeater(n):
return lambda s: s*n
twice = make_repeater(2)
print twice('word')
print twice(5)
(源文件:code/lambda.py)
输出
$ python lambda.py
wordword
10
exec语句用来执行储存在字符串或文件中的Python语句。eval语句用来计算存储在字符串中的有效Python表达式。
assert语句用来声明某个条件是真的。例如,如果你非常确信某个你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么assert语句是应用在这种情形下的理想语句。当assert语句失败的时候,会引发一个AssertionError。
repr函数用来取得对象的规范字符串表示。
● Jython是用Java语言实现的Python解释器。这意味着你可以用Python语言编写程序而同时使用Java库!Jython是一个稳定成熟的软件。如果你也是一个Java程序员,我强烈建议你尝试一下Jython。
OK all is over, let's start!
- 简明pyton教程学习笔记 7-10 对象+输入输出+异常+标准库+更多内容
- 简明pyton教程学习笔记 6-10 控制流+函数+模块+数据结构+解决问题
- 简明Python教程 14)标准库 15)更多内容 16)GUI
- 简明Python教程学习笔记_7_输入输出
- Pyton学习总结(7)-异常
- 简明pyton教程学习笔记 1-5 介绍+安装python+最初的步骤+基本概念+运算符与表达式
- 简明Python教程 12)输入输出 13)异常
- 「学习笔记——Python」Python标准库简明教程
- 「学习笔记——Python」Python标准库简明教程II
- 简明Python教程 --- 15.更多Python的内容
- C++学习笔记--标准输入输出
- Python简明教程学习笔记5--面向对象编程
- 简明python教程学习笔记之九-对象参考
- 简明Python教程学习笔记_6_面向对象编程
- 《简明Python教程》学习笔记
- AutoMapper简明教程(学习笔记)
- AutoMapper简明教程(学习笔记)
- Python简明教程学习笔记
- C语言指针总结
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- gridcontrol 常见问题总结
- 关于剂量的解释
- Android Bitmap和Canvas学习笔记
- 简明pyton教程学习笔记 7-10 对象+输入输出+异常+标准库+更多内容
- JSP页面编码问题研究一(jsp页面请求生命周期)
- 在CStatic控件上自适应显示jpg图片
- 懒惰的小明 STL 优先队列实现 数据结构中的哈弗曼
- 新西兰或对中国代购奶粉行为作出限制措施
- android学习之Handler实现异步与多线程
- NSPredicate 应用
- Android视频渲染: YUV转RGB
- Widget代码片段