2017-03-15 3 views
0

これは既にここで解決されていないと思います。TypeError:プロパティを使用しているときに 'list'オブジェクトが呼び出せません

私は印刷しよう:

import gparser 

gp = gparser.I_Parser() 
print(gp._z_matrix()) 

それは発射だ:gparser.py

Traceback (most recent call last): 
    File ".\__init__.py", line 4, in <module> 
    print(gp._z_matrix()) 
TypeError: 'list' object is not callable 

を、プロパティ_z_matrixは、このような次のように定義されます

@property 
def _z_matrix(self): 
    coords = [] 
    p = re.compile('^ [a-zA-Z] +-?[0-9]') 

    for line in self._file: 
     m = p.match(line) 

     if m: 
      coords.append(line) 

    return coords 

私は本当に理解していませんこのエラーがどのようにポップするのか、誰かが私にこのことを説明できますか?

答えて

3

プロパティを実行するためにプロパティを呼び出す必要はありません。単にそれらにアクセスすると(ドット.が使用されます)、付属の機能がトリガーされます。要するに

、あなたはそれが実行され、定義されているリスト(coords)を返した後、あなたが()を使用して、リストのオブジェクトを呼び出している、そしてgp._z_matrixを経由してプロパティ_z_matrixを呼び出すとしています。

解決策とは別に、解決策は、を削除してTypeErrorを回避することです。

+0

ありがとう、私は完全にそれを逃した! – padrezulmiro

+0

それは大丈夫です@padrezulmiro、それはプロパティを理解するために少しかかり、どのように動作します。 –

0

プロパティにアクセスするためにかっこを渡す必要はありません。ちょうどprint(gp._z_matrix)をしてください。

関連する問題