2

私はいくつかのPythonコードを書いていて、次のようなクラスを持っています

class GO:

    ##irrelevant code 
    def getCenter(self):
        xList = []
        yList = []

        # Put all the x and y coordinates from every GE
        # into separate lists
        for ge in self.GEList:
            for point in ge.pointList:
                xList.append(point[0])
                yList.append(point[1])

        # Return the point whose x and y values are halfway between
        # the left- and right-most points, and the top- and
        # bottom-most points.
       centerX = min(xList) + (max(xList) - min(xList)) / 2
       centerY = min(yList) + (max(yList) - min(yList)) / 2
       return (centerX, centerY)



    ###more irrelevant code
    def scale(self, factor):

        matrix = [[factor,0,0],[0,factor,0],[0,0,1]]
        for ge in self.GEList:
            fpt = []
            (Cx, Cy) = ge.getCenter()
            for pt in ge.pointList:
                newpt = [pt[0]-C[0],pt[1]-C[0],1]###OR USE TRANSLATE
                spt = matrixPointMultiply(matrix, newpt)
                finalpt = [spt[0]+C[0],spt[1]+C[0],1]
            fpt.append(finalpt)
        ge.pointList=fpt
        return 

実行するたびに、次のように表示されますAttributeError: circle instance has no attribute 'getCenter'。オブジェクトがそれ自体で関数を正しく呼び出すようにするにはどうすればよいですか? これは初心者の質問のようなもので、私は学んでいるので、詳細なアドバイスが役に立ちます.

4

1 に答える 1

0

インデントをチェックして、すべてが一貫していることを確認しましたか?これは典型的なPythonの初心者の問題です。一貫性のある空白(タブまたはスペースのいずれか、ほとんどの人はスペースを好む)と適切な量の空白を使用する必要があります。

たとえば、これは問題ないように見えるかもしれませんが、期待どおりには機能しません。

class Dummy(object):

  def foo(self):
    print "foo!"

    def bar(self):
      print "bar!"

d = Dummy()
d.bar()

これは戻ります:

AttributeError: 'Dummy' object has no attribute 'bar'

そうでない場合は、コードを最小限に抑えて、それとその呼び出し方法を投稿してください。現状では、何かが足りない場合を除いて、一般的な形式は私には問題ないように見えます。

于 2012-11-30T23:49:38.187 に答える