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

Dive into python 第5和6章面向对象学习笔记

2014-10-07 22:24 1166 查看
由于Diveintopython的第五和第六章使用一个例子,所讲的东西也比较多。需要仔细整理。

1.

def __setitem__(self, key, item):

if key == "name" and item: # 为什么还需要
and item 呢? 因为 item 可以是None

self.__parse(item)

2. python 的__init__像C++的构造器,但是不完全是,因为在__init__之前,实例已经被构造。

3. Dict模块和UserDict模块类似,但是Dict不是包装类,可以不用初始化,直接调用。

4. python有实例数据属性和类属性,对象数据属性只在__inti__定义,类属性一般做静态变量,但是其并不是一定是常数。

5. 可以用_Class__PrivateFunc来访问私有函数,但是这不被鼓励。

6. open()函数可能出现IOError, import出现ImportError。

7. file_object.tell()函数可以告诉你当前file_object的位置

8.seek(offset,whence) whence是0则offset的位置从头开始,1则从当前位置,2则从尾部开始。

9.

try:
<span style="white-space:pre">	</span>fsock = open(filename, "rb", 0)
<span style="white-space:pre">	</span>try:
<span style="white-space:pre">		</span>fsock.seek(−128, 2)   # seek, read 都可能IOError,所以finally close file
<span style="white-space:pre">		</span>tagdata = fsock.read(128)
<span style="white-space:pre">	</span>finally:
<span style="white-space:pre">		</span>fsock.close()
except IOError:
<span style="white-space:pre">	</span>pass
关于open(name[, mode[, buffering ] ])函数中buffering,0代表不缓存,1代表行缓存,其他正值代表实际bytes的buffer大小,负值使用系统默认。
<span style="font-family: Arial, Helvetica, sans-serif;">10.</span>
>>> print "\n".join(["%s=%s" % (k, v) <span style="font-family: Arial, Helvetica, sans-serif;">for k, v in os.environ.items()])</span>
>>> for k,v in os.environ.items():         #这个循环比上一个慢,因为每次都要print
print "\n".join ("%s=%s" % (k,v))
11. open的‘w'模式会覆盖源文件内容,如果不存在文件将生成文件。
12.

>>> os.path.expanduser("~")  #显示当前用户路径,注意是~
'c:\\Documents and Settings\\mpilgrim\\My Documents'
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">13. os.path.split() 将路径和文件名分开,以tuple的形式</span>

14. os.path.splitext()将路径和扩展名分开

15. os.listdir() 显示当前路径的文件夹和文件, os.path.isdir()和os.path.isfile()分别区分路径中的文件和文件夹,os.getcwd()可以显示当前工作目录

16. 在windows和MAC,os.path.normcase()将路径转成小写,反斜杠。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: