Rasgele bir Python nesnesi için bir karma oluşturmak için pickle.dumps
kullanıyorum, ancak, dict/set emirlerinin kuralsız hale getirildiğini ve bu nedenle sonucun güvenilmez olduğunu öğrendim.Rasgele Nesneler için Hash Oluştur?
SO ve elsewhere üzerinde severalrelatedquestions vardır, ama eşitlik aynı temelini (__getstate__
/__dict__
sonuç) kullanan bir karma algoritma bulmak için görünmüyor olabilir. Kendi başıma yuvarlanmanın temel gereksinimlerini anlıyorum, ama açıkçası test edilen bir şeyi kullanmayı tercih ederim.
Böyle bir kitaplık var mı? Aslında istediğim, çıktıyı hasara uğratmak için deterministik olarak nesneleri (__getstate__
ve __dict__
kullanarak) seri hale getiren bir kütüphanedir.
netleştirmek için DÜZENLEME, Python en hash
(veya __hash__
) tarafından döndürülen değerlerden farklı bir şey arıyorum. İstediğim şey, aslında, yıkanabilir veya bulunmayan keyfi nesneler için bir sağlama toplamıdır. Bu değer nesnelerin durumuna göre değişmelidir. (__getstate__
tarafından geri döndürülen dict'e başvurmak için "state" yi kullanıyorum veya yoksa, nesne __dict__
.
Ne demek istediğini anlamak yararlı olabilir. – arikb
Temelde memoizasyon için. Dosya isimlerinin belirlenmesini gerektiren bir dizi parametre kullanarak dosyalar üretiyorum. Ancak, problemin genel bir çözümü ile ilgileniyorum. – matthewwithanm
İki "eşit" nesneyi '__dict__' yineleme sırasına göre ayırabileceğinizi unutmayın! –