#python #dill
Вопрос:
Почему dill.loads
дает другую двоичную строку функции от dill.dumps
? Рассмотрим следующий пример:
import dill
def func(**kwargs):
return [kwargs[k] for k in ["A", "B", "C"] if k in kwargs]
origin_hex = dill.dumps(func).hex()
alt_hex1 = dill.dumps(dill.loads(bytes.fromhex(origin_hex))).hex()
alt_hex2 = dill.dumps(dill.loads(bytes.fromhex(alt_hex1))).hex()
print(origin_hex == alt_hex1) # False
print(alt_hex1 == alt_hex2) # True
Почему origin_hex отличается от alt_hex1?
Я использую python версии 3.9.4 и dill версии 0.3.3.