为什么 Networkxs 的 path_weight 函数是 return 整数而不是浮点数?

Why does Networkxs' path_weight function return integer instead of float?

我想使用函数 path_weight 来计算路径上权重的 su。权重是小数。但是 path_weight 的文档说它会 return 一个整数。 该实现只是总结了路径上的权重,也适用于小数:

import networkx as nx

G = nx.Graph()

G.add_edge("a", "b", weight=0.6)
G.add_edge("b", "c", weight=0.2)
sum_path_weights = nx.path_weight(G, ["a", "b", "c"], "weight")
print(sum_path_weights) # Output: 0.8

所以我对使用这个功能有点警觉。有谁知道更深层的原因,为什么权重可能是小数但函数想要 return int?

正如@micro5 在评论中指出的那样,这可以被认为是一个打字错误,尽管实际的推理可能是由于使用整数作为权重的惯例(例如,一个典型的例子可能是 link两个节点之间是他们交换一些信息的次数)。

源代码中没有明确的 type-hinting,因此代码可以同时处理浮点数和整数。我提交了 PR 5398 来更新文档。