《简明 Python 教程》笔记-----面向对象及系统相关
self.name = name
def __del__(self):class Person:
def __init__(self ,name):
self.__name = name
def r(self):
print self.__name
class Son(Person):
def __init__(self ,name, num):
Person.__init__(self, name)
self.num = num
def r(self):
print self.num
print self.__name
p = Son('angel',3)
p.r()
2、输入输出文件
给的很少,基本的输入输出格式
文件读写:
poem = '''Programming is fun use Python! '''
f = file('poem.txt', 'w')
f.write(poem)
f.close()
f = file('poem.txt')
while True:
line = f.readline()
if len(line) == 0:
break
print line,
f.close()
储存器 Pickle:可以整块的存取数据,各种类型放一块打包
import cPickle as p
filename = 'shoplist.data'
shoplist = 234
a = 'fdsafd'
f = file(filename, 'w')
p.dump(shoplist, f)
p.dump(a, f)
f.close()
f = file(filename)
sl = p.load(f)
print sl
sl = p.load(f)
print sl
3、异常,跟C++模式一样
import sys
try
...
except MyException:
...
except :
...
else:
...
finally:
...
自定义异常举例:
class
ShortInputException
(Exception):
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
)
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.'
4、Python标准库
给的很少,以后用的话还是要自己探索啊
sys模块:
这里给了怎么使用sys.argv,在非交互模式下运行,你后面输入的东西,放在arg[]里
比如输入 python a.py --version
argv[0]储存当前文件名,即a.py
argv[1]储存--version
sys模块里还有其它项目,
s
ys.stdin
、sys.stdout,
sys.stderr
分别对应你的程序的标准输入、标准输出和标准错误流。
OS模块:
一些与平台无关的功能,增强了可移植性。
http://sebug.net/paper/python/ch14s03.html
5、更多Python内容的特殊方法
我觉得有用的:
①.列表综合:
代码:
listone = [
2
,
3
,
4
]
listtwo = [
2
*i
for
i
in
listone
if
i >
2
]
print
listtwo
输出:
[6, 8]
②.在函数中接收元组和列表
变量前加*代表数组,可以接收元组和列表
变量前加**代表二维数组,可以接收字典
def powersum(power, *args):
total = 0
for i in args:
total += pow(i, power)
return total
③.lambda形式
代码:
def
make_repeater
(n):
return lambda
s: s*n
twice = make_repeater(2
)
print
twice(
'word'
)
print
twice(
5
)
输出:
wordword
10
lambda
语句用来创建函数对象。
本质上,lambda
需要一个参数,后面仅跟单个表达式作为函数体,而表达式的值被这个新建的函数返回。
注意,即便是print
语句也不能用在lambda形式中,只能使用表达式。
④.exec和eval语句
exec
语句用来执行储存在字符串或文件中的Python语句
>>> exec 'print "Hello World"'
Hello World
eval
语句用来计算存储在字符串中的有效Python表达式
>>> eval('2*3')
6
⑤.assert
语句
assert
语句用来声明某个条件是真的。当assert语句失败的时候,会引发一个AssertionError
。
>>> mylist = ['item']
>>> assert len(mylist) >= 1
>>> mylist.pop()
'item'
>>> assert len(mylist) >= 1
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AssertionError
⑥.repr函数
repr
函数用来取得对象的规范字符串表示。
反引号有相同功能
>>> i = []
>>> i.append('item')
>>> `i`
"['item']"
>>> repr(i)
"['item']"
6、一些GUI库,python书籍,开发书籍等相关资料
http://sebug.net/paper/python/ch16.html