python工作使用笔记

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

完了,需要重新加载,我是直接reboot了

13.python -m compileall /root/src/ 可以编译目录下的所有py文件为pyc,这样可以提前发现语法错误,pyo是优化的pyc,通过-O参数


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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值