gpt4 book ai didi

如果变量存在于列表中,则从 self 中删除变量的 Pythonic 方法

转载 作者:太空宇宙 更新时间:2023-11-03 12:14:11 28 4
gpt4 key购买 nike

我有一个字符串列表 ['foo1', 'foo2', ...] 代表我想从 self 中删除的变量(如果它们是 self 的一部分)。执行此操作的 Pythonic 和紧凑的方法是什么?

我的第一次尝试是

if hasattr(self, 'foo1'):
del self.foo1
if hasattr(self, 'foo2'):
del self.foo2
...

但这显然无法扩展到大型列表。

有人能帮忙吗?

最佳答案

您可以使用 for 循环,同时通过在 __dict__ 上使用 pop提升性能对象的:

for attr in ('foo1','foo2'):
self.__dict__.pop(attr,None)

pop 主要检查元素是否在字典中,如果是,则将其删除(它还会返回相应的值,但这与此处无关)。我们还在这里使用 None 作为“默认”返回值,这样如果键不存在,pop 将不会出错。

关于如果变量存在于列表中,则从 self 中删除变量的 Pythonic 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42303601/

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