好像我想通出來的東西自己:
16 def generate_hash(dictionary):
17 args = []
18 for key,item in dictionary.iteritems():
19 if isinstance(item,functools.partial):
20 args.append((key,item.func.__module__,item.func.__name__,
21 generate_hash(item.keywords)))
22 elif inspect.isfunction(item):
23 args.append((key,item.__module__,item.__name__))
24 else:
25 args.append((key,item))
26 return hashlib.sha224(str(args)).hexdigest()
這也與部分功能的工作原理consistenly:
foo('a','1',np.average) -> 1631c5fd0050fd01cb7a7ee9666d366b35c1415cb4181c7220ead043
foo('a',1,functools.partial(np.average,axis=0)) -> 692227d3b52b0cdcd4ed2204650cb207c1ab6f274a09977c711d35d5
foo('a',1,functools.partial(np.average,axis=1)) -> ba1e0b01f2e12ef1c9ca2e3bf5235aaadcbe4ab29d9c977e1ee6e799
你說的哈希的是什麼意思?我不知道Python的哈希庫的細節,但可以散列任何長度和數量的任何二進制數據。 – Linuxios 2014-10-09 16:10:51
沒有解釋清楚。看看我剛剛添加的示例。 – memecs 2014-10-09 16:14:02
如果你調用hash內建函數會發生什麼?我知道文檔說它計算一個對象的散列,但該對象可能是參數的一個元組 – 2014-10-09 16:21:11