标签 [ python ] 下的文章:

Python中的euid和uid

今天遇到了一个非常奇怪的问题:在root用户下,python的sys path中包含了/usr/local路径下的site-packages目录,但是在非root用户下,却没有包含,导致该用户执行程序异常,报:ModuleNotFoundError

阅读全文>>

Python中的类与对象-笔记

  1. python中类也是一个对象
  2. 定义在init外的属性是类属性,定义在init内的是对象属性
  3. 修改类的属性,会影响所有该类的对象(包括已经实例化的)
  4. metaclass 是创造类,而不是实例化类的对象
  5. metaclass中操作的属性都是类的属性
  6. metaclass中通过super().__new__创建新类
  7. metaclass中通过super().__new__创建的类包含了父类的属性,可以通过getattr获取
  8. metaclass中直接修改通过getattr获取的父类属性,会更新到父类中,影响所有父类的子类
  9. metaclass中,如果父类在init外定义了某个属性,这个属性可以通过getattr获取,且被继承到子类,否则通过getattr获取的结果为None
  10. metaclass中,通过setattr设置类的属性,只作用在当前类,不会修改父类的属性

资源同步的一种思路

在两个节点之间或两个时刻之间需要同步有顺序的资源,例如防火墙策略,如何用比较小的代价来实现资源一致。

有一种思路是类似文本比较,用diff的方法来修改待同步一侧的资源。

需要使用的python的lib库:difflib

阅读全文>>

自定义的exception出现unprintable object错误

问题本身

原因:traceback.print_exc()函数打印异常信息时,会调用exception的__str__()方法,如果该方法出现异常,就会出现该问题
排查:可以在exception的__str__方法中加try except来捕获异常,打印具体的错误。

阅读全文>>

python2的编码问题整理

最近在项目中发现了一个历史遗留而又埋的很深的关于编码的坑,涉及到中文编码的转换。在分析的过程中再次回顾了一下有关编码的知识。python版本为2.7。

阅读全文>>