python工作使用笔记

来源:互联网 发布:淘宝分享链接怎么弄 编辑:程序博客网 时间:2024/05/16 11:20

1.设置python脚本编码格式

import sys

reload(sys)

sys.setdefaultencoding('gb2312')


2.设置终端编码格式,如果print的时候说编解码不了,that's it

sys.stdout = codecs.getwriter(locale.getpreferredencoding())(sys.stdout)

sys.stderr = codecs.getwriter(locale.getpreferredencoding())(sys.stderr)


3.getattr(obj, attr)的语意跟obj.attr是一样的,但是因为getattr的第二个参数是string,它的用途就比后面的写法大了,可以用作分发器,比如getattr(obj, "%sxxx" % a),还有一个hasattr用来判断是否有属性


4. t and a or b可以达到类似t?a:b的功能,但是注意a必须要为真,保险的做法是a和b使用[],然后对结果取第一个元素

5. info dir __doc__可以查看python的文档,因为python是自文档化的

6. enumerate(seq)可以获得index,可以用来简化如下的代码:

i = 0 for item in seq:    xxx    i = i + 1
简化后的代码为:
for i, item in enumerate(seq):    xxx    

7.iterator用来实现迭代器(只要实现next和__iter__方法就好),yield可以用来做生成器

8.类如果继承自object,那么类有个__mro__成员,可以用来查看类的初始化顺序

9. python本身不提供对private的支持,但是可以通过name mailing(初衷只是用来解决子类覆盖的问题)来实现private,以__开头的命名会被编译器重新命名为_myclass__xx,这样来达到正常无法访问,其实还是可以访问的,只是变了个名字而已。不过很多标准还是用_下划线开头来表示是私有成员,只是一种命名约定而已,python并没有相关语言级的保护

10. 如果要限定类的动态添加成员功能,可以通过__slots__来实现

11. 在调用类的__init__之前会先调用__new__

12.安装cx_oracle,安装完后会出现oid generate fail,解决方案如下:

I was then able to import cx_oracle without issues but I was getting an error "'ORA-21561: OID generation failed'" when connecting to the external server.

Then I followed the instructions here and added a line with my host name to the /etc/hosts file and it all works now.

e.g., added a line like this at the end of /etc/hosts

127.0.0.1 localhost my-host-name


<python高级编程>这本书介绍了python的高级部分,对于想进阶的人说是一本不错的书。虽然这本书中介绍的,平时也很难用上



原创粉丝点击