Python 对象不可调用
Python Object not callable
我是 python 的新手:
创建了 Class:
class NodeStruct:
"""Struct to hold node data for search trees"""
def __init__(self, name, children, parent_name, edge_weight):
self.name = name
self.childNodes = children
self.parent = parent_name
self.weight = edge_weight
def name(self):
return self.name
def parent(self):
return self.parent
def path_cost(self):
return self.weight
def children(self):
return self.childNodes
def child_keys(self):
return self.childNodes.keys()
实例化:
this_node = NodeStruct(start, problem[start], 'root', 0)
问题:当我调用 name()
name = this_node.name()
我收到以下错误:
TypeError: 'str' object is not callable
看起来应该很简单...我错过了什么?
您希望 this_node.name()
找到 name
中的哪一个?
self.name = name
# ...
def name(self):
return self.name
解决方案很可能将属性的名称更改为self._name
:
self._name = name
# ...
def name(self):
return self._name
当您定义 class 时,name
是一个函数。但是,一旦您实例化它,就会调用 __init__
,并且 name
会立即设置为您传入的任何内容(在本例中为字符串)。函数的名称不会与其他对象的名称分开。使用唯一的名称。
我是 python 的新手:
创建了 Class:
class NodeStruct:
"""Struct to hold node data for search trees"""
def __init__(self, name, children, parent_name, edge_weight):
self.name = name
self.childNodes = children
self.parent = parent_name
self.weight = edge_weight
def name(self):
return self.name
def parent(self):
return self.parent
def path_cost(self):
return self.weight
def children(self):
return self.childNodes
def child_keys(self):
return self.childNodes.keys()
实例化:
this_node = NodeStruct(start, problem[start], 'root', 0)
问题:当我调用 name()
name = this_node.name()
我收到以下错误:
TypeError: 'str' object is not callable
看起来应该很简单...我错过了什么?
您希望 this_node.name()
找到 name
中的哪一个?
self.name = name
# ...
def name(self):
return self.name
解决方案很可能将属性的名称更改为self._name
:
self._name = name
# ...
def name(self):
return self._name
当您定义 class 时,name
是一个函数。但是,一旦您实例化它,就会调用 __init__
,并且 name
会立即设置为您传入的任何内容(在本例中为字符串)。函数的名称不会与其他对象的名称分开。使用唯一的名称。