我继承了这个python程序,并且有点像菜鸟,我无法弄清楚问题是什么。我在以下函数的第一行收到语法错误:
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
答案 0 :(得分:5)
如果您使用的是Python 3.x,则不能再使用'L'后缀,因为它不再需要,而不是语法的一部分:
yBits = y & 0xFFFFFFFL
Original exception was:
File "<stdin>", line 1
0xFFL
^
SyntaxError: invalid syntax
答案 1 :(得分:0)
这是因为错误的缩进,你必须缩进函数体。你的函数应该像这样缩进:
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
关键字的行之后缩进,例如:
class YourClass:
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