希望这里还没有得到答案。
当我尝试打印时:
import gparser
gp = gparser.I_Parser()
print(gp._z_matrix())
它的解雇:
Traceback (most recent call last):
File ".\__init__.py", line 4, in <module>
print(gp._z_matrix())
TypeError: 'list' object is not callable
在gparser.py
中,属性_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
我真的不明白我是如何导致此错误弹出的,有人可以解释一下吗?
答案 0 :(得分:4)
不需要调用属性以便它们执行。只需访问它们(使用点.
)就会触发附加的功能。
简而言之,您通过_z_matrix
调用了属性gp._z_matrix
,然后在执行并返回定义的列表(coords
)之后,您就可以了使用()
重新调用列表对象。
除了解释之外,解决方案只是删除()
以避免TypeError
。
答案 1 :(得分:1)
您无需传递括号即可访问属性。只需print(gp._z_matrix)
。