Skip to main content
 首页 » 编程设计

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

2025年05月04日11kenshinobiy

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

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')