gpt4 book ai didi

python - 无法将变量传递给函数

转载 作者:太空宇宙 更新时间:2023-11-04 07:03:57 24 4
gpt4 key购买 nike

我正在尝试构建一个函数来计算文件的哈希值。该函数接受参数、文件名和要生成的算法:

def getHashValue(fName, Hash):
f = open(fName, 'rb')
hashvalue = hashlib.Hash(f.read()).hexdigest
f.close()
print(fName + str(Hash) + hashvalue)

我的问题是我无法使 Hash 参数起作用。我的想法是如果我添加 md5 我会得到这个:

hashvalue = hashlib.md5(f.read()).hexdigest

安迪.l

最佳答案

不要在函数内部使用 hashlib。只需将函数作为参数并使用它。

def getHashValue(fName,Hash):
f = open(fName,'rb')
hashvalue = Hash(f.read()).hexdigest
f.close()
print(fName + str(Hash) + hashvalue)

然后当你调用这个函数时,使用:

getHashValue(filename, hashlib.md5)

如果要从字符串中获取散列函数,请使用 getattr。

hashvalue = getattr(hashlib, Hash)(f.read()).hexdigest

并调用这个:

getHashValue(filename, 'md5')

关于python - 无法将变量传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5184219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com