1. ホーム
  2. python

[解決済み] Pythonです。'function' オブジェクトは属性を持っていない x

2022-02-16 21:36:28

質問

こんにちは、Pythonでオブジェクトの関数を呼び出すのに問題があります。 これは、私が呼び出そうとしているメソッドです。

def getCenter(self):
    cx = 0
    cy = 0
    for p in self.points:
        cx += p.x
        cy += p.y
    cx /= len(self.points)
    cy /= len(self.points)
    return Point(cx,cy,self.cid)

これは、私が作ろうとしている呼び出しです。

for c in clusters:
    print(c.points,c.cid)
    poi = c.getCenter
    print(poi.x)

クラスには、"points" と呼ばれる点のリストがあります。ポイントは次のようなものです。

class Point:
    x = 0
    y = 0
    cluster = -1
    def __init__(self, x = 0, y = 0):
        self.x = x
        self.y = y

function' オブジェクトに 'x' という属性がないというエラーメッセージが表示されます。点を返すクラスタでgetCenter-methodを呼び出しています。そして、その点の x 属性を呼び出しています。だから、なぜこのエラーが表示されるのかわかりません。

どうすればいいですか?

この行はここです。

poi = c.getCenter

は関数を呼び出しているのではなく、関数を名前に代入しているのです。 poi . 実際に呼び出すには括弧が必要です。

poi = c.getCenter()