【发布时间】:2016-08-12 15:37:25
【问题描述】:
基本上,我想知道我是否应该尽可能避免函数中的副作用,或者在某些情况下副作用是否可以接受。我想要一个函数 pops 并从字典中返回一个键,我很好奇该函数是否应该只返回键:
def popkey(d):
k, v = d.popitem()
return k
mykey = popkey(d)
或者如果它也应该返回修改后的字典:
def popkey(d):
k, v = d.popitem()
return k, d
mykey, d = popkey(d)
更具体地说,我有类似以下的内容,我需要继续查看字典,所以我想pop 键,因为它们与列表中的元素配对。
def pop_nearest(d, pt):
"""Pops the key in `d` which is nearest to pt."""
to_pop = min(d.iterkeys(), key=lambda a: abs(a - pt))
d.pop(to_pop)
pts = [1,3,5,7,9]
for pt in pts:
nearest_pt = pop_nearest(d, pt)
# do some other stuff
【问题讨论】:
标签: python dictionary side-effects