[已解决]我用Python编写了一个使用类的程序,但是它一直在说'str' object is not callable
,如果我尝试注释第7、8和16行,那么它会说
'int' object is not callable
。你知道吗
class Lambo:
def __init__(self, color, model_number, average, milage):
self.color = color
self.model_number = model_number
self.average = average
self.milage = milage
def color(self):
print("Lamborghini color is " + self.color)
def model_number(self):
print("Lamborghini model number is " + str(self.model_number))
def average(self):
print("Lamborghini average is " + str(self.average))
def milage(self):
print("Lamborghini milage is " + str(self.milage))
lambor = Lambo("Red", 2016, 20, 8)
lambor.color()
lambor.model_number()
lambor.average()
lambor.milage()
预期产量:
Lamborghini color is Red
Lamborghini model_number is 2016
Lamborghini average is 20
Lamborghini milage is 8
我也在使用PyCharm社区版4.5.4
使用
color
(etc)作为变量名(字符串)和方法名。在python中不能这样做。你知道吗错误
str is not callable
意味着在字符串变量后面加括号(因此试图像函数一样“调用”它)。每当你看到这个,在编程逻辑中就有一个错误。你知道吗您的实例具有以下属性:
那些掩码您定义的方法;方法只是更多的属性,但是Python首先查看实例,然后才查看类以查找属性:
您没有调用
Lambo.color()
方法,而是试图调用字符串'Red'
。重命名在__init__
中设置的属性,或者重命名方法。你知道吗可以对每个名称使用一个前导下划线来删除冲突,并记录该属性仅在类内部使用:
或者,重命名方法来说明它在做什么;在它们前面加上
print_
:一般来说,不应该让类负责这样的输出。通常给类一个
__str__
方法,该方法可以生成一个用户友好的字符串,然后在实例上打印调用str()
,或者直接将其发送到print()
函数:方法和属性具有相同的名称。你知道吗
相关问题 更多 >
编程相关推荐