位Li上的Python语法错误

2024-09-24 06:35:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我继承了这个python程序,作为一个有位的noob,我不知道问题出在哪里。以下函数的第一行出现语法错误:

def tileKey(self, z, x, y):
    zBits = z & 0xFFL
    #  8bits, 256 levels. normally [0,21]
    xBits = x & 0xFFFFFFFL
    #  28 bits
    yBits = y & 0xFFFFFFFL
    #  28 bits
    key = (zBits << 56) | (xBits << 28) | (yBits << 0)
    #  return the key value integer 720576213915009588
    return key

Tags: key函数self程序returndefbitslevels
2条回答

因为缩进错误,你必须缩进函数的主体。您的函数应该这样缩进:

def tileKey(self, z, x, y):
    zBits = z & 0xFFL
    #  8bits, 256 levels. normally [0,21]
    xBits = x & 0xFFFFFFFL
    #  28 bits
    yBits = y & 0xFFFFFFFL
    #  28 bits
    key = (zBits << 56) | (xBits << 28) | (yBits << 0)
    #  return the key value integer 720576213915009588
    return key

它看起来像是类中的一个方法,因此该方法的整个定义应该缩进到带有class关键字的行之后,例如:

^{pr2}$

如果您使用的是Python 3.x,则不能再使用'L'后缀,因为它不再是必需的,也不是语法的一部分:

yBits = y & 0xFFFFFFFL
Original exception was:
  File "<stdin>", line 1
    0xFFL
        ^
SyntaxError: invalid syntax

相关问题 更多 >