理解一个算法最快,最深刻的做法,我觉着可能是自己手动实现,虽然项目中不用自己实现,有已经封装好的算法库,供我们调用,我觉着还是有必要自己亲自实践一下。
这里首先说明一下,python这种动态语言,对不熟悉的人可能看着比较别扭,不像java那样参数类型是固定的,所以看着会有些蛋疼。这里环境用的是python2.7。
class Message: # command MSG_ACCEPTOR_AGREE = 0 # 追随者约定 MSG_ACCEPTOR_ACCEPT = 1 # 追随者接受 MSG_ACCEPTOR_REJECT = 2 # 追随者拒绝-网络不通 MSG_ACCEPTOR_UNACCEPT = 3 # 追随者网络通-不同意 MSG_ACCEPT = 4 # 接受 MSG_PROPOSE = 5 # 提议 MSG_EXT_PROPOSE = 6 # 额外提议 MSG_HEARTBEAT = 7 # 心跳,每隔一段时间同步消息 def __init__(self, command=None): self.command = command # 把收到的消息原原路返回,作为应答消息 def copyAsReply(self, message): # 提议ID #当前的ID #发给谁 #谁发的 self.proposalID, self.instanceID, self.to, self.source = message.proposalID, message.instanceID, message.source, message.to self.value = message.value # 发的信息