纯函数是一个函数,它的返回值对于相同的参数是相同的,并且没有任何副作用。
CPython 是否认识到返回值将是相同的并且只调用一次函数进行优化?如果没有,其他python解释器会这样做吗?
下面我使用 编写了一个示例os.path.join,假设它是一个纯函数(我实际上并不知道它的实现),但问题扩展到所有纯函数。
dirpath = "C:\\Users"
dirname = "Username"
mylist = [["another\\directory", 6], ["C:\\Users\\Username", 8], ["foo\\bar", 3]]
count = 0
for pair in mylist:
if os.path.join(dirpath, dirname) == pair[0]:
count = pair[1]
dirpath并且dirname不会在 for 循环内进行修改。给定相同的输入,os.path.join总是有相同的返回值。
紫衣仙女
尚方宝剑之说
相关分类