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设置类的属性,只作用在当前类,不会修改父类的属性

cloudinit解惑 - Local Stage

简介

  • systemd service: cloud-init-local.service
  • runs: As soon as possible with / mounted read-write.
  • blocks: as much of boot as possible, must block network bringup.
  • modules: none

阅读全文 >>

cloudinit解惑 - 启动流程

cloud-init在安装的时候会在system-generators目录(例如:/usr/lib/systemd/system-generators/)下创建一个cloud-init-generator可执行文件,实际上是一个shell脚本。systemd在启动初期会执行该generator(目录下所有的generators都会在同一时间被并行执行 )。在cloud-init-generator脚本中判断了当前是否需要启动cloud-init.target,一般会检查一下几点:

阅读全文 >>

资源同步的一种思路

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

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

需要使用的python的lib库:difflib

阅读全文 >>

AMQP学习笔记

AMQP 0-9-1(Advanced Message Queuing Protocol)高级消息队列协议是一个消息协议,它支持符合标准的客户端请求程序与符合标准的消息中间件代理进行通信。

阅读全文 >>

monkey patch解惑

被折磨了一个礼拜!!!你奶奶的!!!
等空了,一定要抽时间把它里里外外翻个遍看看!!!

说道做到,今儿就来翻开monkey patch的大衣,看看里面到底是什么。

其实它一点都不神秘,挺简单的一个东西,但是当你不知道你的程序中被人打了猴子补丁的时候,你真的会疯掉,就像我一样,好东西要好好的用,不然全是一个个坑啊~_~ !!!

阅读全文 >>