📅  最后修改于: 2023-12-03 15:35:23.671000             🧑  作者: Mango
当你尝试调用一个frozenset
对象(不可变的集合)时,该错误就会被抛出。
例如,以下代码会导致TypeError:
f_set = frozenset([1, 2, 3])
f_set(2)
输出:
TypeError: 'frozenset' object is not callable
这是因为f_set
是一个集合对象,而不是可调用函数。
如果你想检查f_set
中是否存在某个元素,可以使用in
关键字:
f_set = frozenset([1, 2, 3])
2 in f_set # True
或者,你可以通过将f_set
转换为可调用函数来实现。例如,将f_set
转换为lambda表达式:
f_set = frozenset([1, 2, 3])
f_set_lambda = lambda x: x in f_set
f_set_lambda(2) # True
但是,这个方法不如使用in
关键字简洁和易读。
请注意,类似set
和dict
的可变集合和映射对象没有这个问题,因为它们是可调用函数。如果你需要一个可变的集合,可以使用set
类。