我尝试构建一个名为“Point”的类来表示三维坐标(x,y,z)。你知道吗
class Point(object):
def __init__(self):
a = 3
self.data = [[[bool(False) for x in xrange(a)] for y in xrange(a)] for z in xrange(a)]
def __call__(self, x, y, z):
return 'call :'+self.data[x][y][z]'
我可以很容易地访问一个点:
p = Point()
print p(1 ,1, 1) # output : False`
但是,我不能给这一点赋值!你知道吗
p(1, 1, 0) = True # SyntaxError: can't assign to function call
你知道吗?你知道吗
如果你这样写,你会得到以下错误:
请注意,这是一个
SyntaxError
,这意味着Python甚至懒得尝试来计算它。它说:在Python语法中,不是这样的,所以它不应该这样工作。你知道吗一件与你的要求非常接近的事情是重写
__setitem__
函数,这样你就可以用p[1,1,0]
赋值(注意这些是方括号)。比如:现在它的工作原理是:
相关问题 更多 >
编程相关推荐