0

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
4

2 に答える 2

0

listappendメソッドは を返しますNoneが、要素はリストに追加されます。

>>> a = [1, 2]
>>> print(a.append(3))
None
>>> a
[1, 2, 3]
于 2013-01-27T18:53:18.677 に答える
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
于 2013-01-27T19:12:25.233 に答える