在Python3中使用class作为占位符

时间:2013-01-27 18:40:27

标签: python class placeholder slots

我已经在python中看过很多关于类的教程,但我正在尝试用它们做一些更基本的东西,但不知怎的,它不能正常工作。

我试图通过将它们放入类的占位符来制作3维点。

但是,当我尝试打印make3Dpoint(x,y)

的输出时

我得到类似<__main__.point object at 0x02D8FA30>的内容。

当我尝试将此输出附加到列表时,我只是得到 nonetype

显然我是初学者而且我不想进入任何先进的方法来解决这个问题(而且我不允许为这个课程做准备)。我不想修改类本身。

无论如何都可以使这个输出有用吗?

class point():
    __slots__ = ('x','y','depth')

def calculate(x,y):
    z = x * y + 2 * x * y + 4
    return z

def make3Dpoint(x,y):
    z = calculate(x,y)
    point=point()
    point.x = x
    point.y = y
    point.depth = z
    return point

2 个答案:

答案 0 :(得分:0)

列表append方法返回None,但该元素已添加到列表中。

>>> a = [1, 2]
>>> print(a.append(3))
None
>>> a
[1, 2, 3]

答案 1 :(得分:0)

将代码构造成如下:

def calculate(x,y):
    z = x * y + 2 * x * y + 4
    return z

class Point:
    __slots__ = ('x', 'y', 'depth')

    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.depth = calculate(x,y)

points = []
points.append( Point(2,3) )
print points