Python 中 AttributeError: ‘int’ object has no attribute ‘split’

当我们对整数调用 split() 方法时,会出现 Python“AttributeError: ‘int’ object has no attribute ‘split’ ”。 要解决该错误,需要确保调用 split 的值是字符串类型。

下面是产生上述错误的示例代码

my_string = 'hello,world'

my_string = 100

print(type(my_string))  # <class 'int'>

# ⛔️ AttributeError: 'int' object has no attribute 'split'
print(my_string.split(','))

Python 中 AttributeError: 'int' object has no attribute 'split'

我们将 my_string 变量重新分配给一个整数,并尝试对导致错误的整数调用 split() 方法。

如果我们使用 print() 打印我们调用 split() 的值,它将是一个整数。

要解决该错误,您需要查明在代码中将值设置为整数的确切位置并更正分配。

要解决示例中的错误,我们必须删除重新分配或更正它。

my_string = 'hello,world'

print(my_string.split(','))  # 👉️ ['hello', 'world']

str.split() 方法使用定界符将字符串拆分为子字符串列表。

该方法采用以下 2 个参数:

  • separator 在每次出现分隔符时将字符串拆分为子字符串
  • maxsplit 最多完成 maxsplit 拆分(可选)

如果我们需要消除错误并且不能删除对 split() 的调用,我们可以在调用 split() 之前将整数转换为字符串。

example = 123

print(str(example).split(','))  # 👉️ ['123']

如果在字符串中找不到分隔符,则返回仅包含 1 个元素的列表。

我们还可以将调用返回整数的函数的结果分配给变量。

def get_string():
    return 100


my_string = get_string()

# ⛔️ AttributeError: 'int' object has no attribute 'split'
print(my_string.split(','))

my_string 变量被分配给调用 get_string 函数的结果。

该函数返回一个整数,因此我们无法对其调用 split() 。

要解决该错误,我们必须找到为特定变量分配整数而不是字符串的位置并更正分配。

总结

当我们对整数调用 split() 方法时,会出现 Python“AttributeError: ‘int’ object has no attribute ‘split’”。 要解决该错误,需要确保调用 split 的值是字符串类型。