我正在扩展一位前同事的代码(Python3),我个人发现那些重复的self.__local_object.x=some_result
很烦人,阻碍了可读性。即代替
self.__local_node.sign("computing partition for joining node %f<?<%f"%(
self.__local_node.partition_id,next_neighbour.partition_id))
partition_id = 0
if(next_neighbour != self.__local_node):
partition_id = PartitionID.gen_btw(self.__local_node.partition_id, next_neighbour.partition_id)
我宁愿用
ln=self.__local_node
ln.sign("computing partition for joining node %f<?<%f"%(
ln.partition_id,next_neighbour.partition_id))
partition_id = 0
if(next_neighbour != ln):
partition_id = PartitionID.gen_btw(ln.partition_id, next_neighbour.partition_id)
然而,我还不熟悉Python开发,如果我为引用的对象引入这样(希望如此)的局部别名,我可能会错过一条黄金准则,这将使进一步的维护成为一场噩梦。你知道吗
PS:不,self.__local_node
的值在代码中的任何地方都不会改变。你知道吗
如果您真的不更改值,只分配或访问它的属性,这应该是完全可以的。你知道吗
如果使用的\uu local\u node对象的所有成员都属于此处引用为self的类,并且这是复制粘贴狂暴的产物,我也不会感到惊讶。你知道吗
因为
local_node
和next_neighbour
是对称的,所以最好将代码提取到一个单独的方法中:在我看来更具可读性。而且,使用双下划线必须有很好的理由(或借口)。检查是否有可能在你的情况下摆脱他们。你知道吗
相关问题 更多 >
编程相关推荐