Python报错”TypeError: ‘set’ object is not callable “怎么处理?

  • Post category:Python

当我们在Python中使用了关键字set作为变量名时,如果我们尝试使用set()进行调用时,就会报出TypeError: 'set' object is not callable的错误。这是因为在调用set()时,Python解释器将变量名set解释成了我们声明的set类型的变量,而不是set()函数。这将导致我们无法使用set()函数进行调用,因为在Python解释器的脑海中,set已经成为了一个变量名,而不是内置函数名。

解决这个问题的最简单方法是修改变量名,避免使用Python内置关键字来定义变量名。但是,如果你的程序不得不使用set作为变量名,那么你可以使用以下两种方法来解决这个问题:

1.使用内置函数del删除你的变量。这将允许你再次使用内置函数set()

# 定义set变量
set = {1, 2, 3}

# 使用del删除set变量
del set

# 现在可以正常使用set()函数
new_set = set([4, 5, 6])

2.使用内置函数__builtins__set()函数显式地指向Python中的内置函数。

# 定义set变量
set = {1, 2, 3}

# 显式指向内置函数,可以正常使用set()函数
set_func = __builtins__.set

new_set = set_func([4, 5, 6])

以上两种方法都可以解决这个问题,但第一种方法更加简单直接。为了避免不必要的麻烦,建议尽可能避免使用Python内置关键字来定义变量名。