gpt4 book ai didi

python - 如何确定函数的参数是否与上次调用不同

转载 作者:行者123 更新时间:2023-12-01 01:00:18 27 4
gpt4 key购买 nike

我有一个函数x采用一个参数 y 。里面x ,我想确定是否 y与之前调用 x 相同或不同(实际上它只是我关心的y的一部分,但拆分细节并不相关)。

目前,我使用全局 last_y初始化为不可能的 y值并检查 y != last_y

我很好奇是否有任何干净的(非全局)方法可以做到这一点?我希望使用 nonlocal可以,但我的目标之一是 Python 2.7。

有没有非global适用于所有 Python 版本的解决方案?

last_y="" # only used by x
def x(y):
if y != last_y:
#<do something>
last_y = y

最佳答案

如果您使用的是 Python 2.7,那么我认为使用 getattrsetattr 将是最好的方法:

def f(y):
if getattr(f, 'old_y', None) != y:
print('New y is not equal to old y!')

else:
print('New y is equal to old y!')

setattr(f, 'old_y', y)

f('same')
f('same')
f('different')

输出:

New y is not equal to old y!
New y is equal to old y!
New y is not equal to old y!

关于python - 如何确定函数的参数是否与上次调用不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55859454/

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