Python类错误:“str对象不可调用”

时间:2016-04-21 02:41:21

标签: python-2.7

我只是练习课堂和对象 代码是 enter image description here

我已经知道第二个函数def名称是重叠的,因为name已经设置为self.name。但我不确定它是如何造成错误的。

有人能说出如何解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

该错误非常具有描述性;字符串不可调用,函数是。我相信Python会在检查是否存在具有给定名称的函数之前在类中查找变量。因此,找到字符串 name,但因为它添加了(),python然后尝试像函数一样调用它并失败。

只需重命名函数或变量即可。如果要表明它是私有的并且不应该更改,您可以使用self._name作为变量名称 - 至少不是来自课外。您还必须撰写print "The University name is %s" % (self._name)(和self.rank)。

答案 1 :(得分:0)

您的班级$mod+Shift+r中已有一个名为name的变量,因此该程序正在尝试调用University,这会触发错误。因此,将函数名称更改为"University of America"()

print_name
class University():
        def __init__(self, name, rank):
                self.name = name
                self.rank = rank

        def print_name(self):
                print "The University name is %s" % (self.name)
                print "This University is ranked at %s" % (self.rank)