Python - 描述符“split”需要“str”对象,但收到“unicode”

2024-04-04

呃,我有现成的代码,并且我确信它确实有效,但我收到以下错误:

类型错误:描述符“split”需要“str”对象,但收到了 '统一码'

这就是整个定义:

def assemblePacket(self, type):
    ipSplit = str.split(self.serverVars[0], '.')

    packet = 'SAMP'
    packet += chr(int(ipSplit[0]))
    packet += chr(int(ipSplit[1]))
    packet += chr(int(ipSplit[2]))
    packet += chr(int(ipSplit[3]))
    packet += chr(self.serverVars[1] & 0xFF)
    packet += chr(self.serverVars[1] >> 8 & 0xFF)
    packet += type

    return packet

问题是这样的:

ipSplit = str.split(self.serverVars[0], '.')

我确信这不是因为代码,我之前已经尝试过(相同的脚本)并且它有效。不知道为什么现在不行了。这个“unicode”让我觉得我必须更改“str.split”,但是嗯。等待意见:)


正如@Abe提到的,这里的问题是,你正在使用字符串分割 http://docs.python.org/2/library/stdtypes.html#str.split分割类型的对象unicode这是导致失败的原因。

有三种选择供您选择

  1. 在这种特殊情况下,您可以简单地调用split()对象的方法。这将确保无论对象的类型如何(str, unicode),方法调用将正确处理它。
  2. 您也可以致电unicode.split()。这对于unicode字符串但是对于non-unicode字符串,这将再次失败。
  3. 最后,您可以导入string http://docs.python.org/2/library/string.html#module-string模块并调用字符串分割 http://docs.python.org/2/library/string.html#string.split功能。该函数将转换为split()函数调用到方法调用,从而使您能够透明地调用split()无论对象类型如何。当您使用split()作为回调,特别是像这样的函数map()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python - 描述符“split”需要“str”对象,但收到“unicode” 的相关文章

随机推荐