第 15 行,在 <module> print(restaurant.restaurant_name()) TypeError: 'str' object is not callable

line 15, in <module> print(restaurant.restaurant_name()) TypeError: 'str' object is not callable

提问人:Ankit Yadav 提问时间:9/13/2023 最后编辑:John GordonAnkit Yadav 更新时间:9/13/2023 访问量:23

问:

这段代码有什么问题:

class Restaurant:
    def __init__(self,restaurant_name,cuisine_type):
        self.restaurant_name=restaurant_name
        self.cuisine_type=cuisine_type
    
    def open_restaurant(self):
        print("The restaurant is open")
    
    def describe_restaurant(self):
        print("The restaurant's name is",restaurant_name,"and its cuisine_type is",cuisine_type

restaurant=Restaurant('kadmi','indian')
print(restaurant.restaurant_name())

它没有运行并说

第 15 行,在 打印(restaurant.restaurant_name()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError:“str”对象不可调用

Python 基础

评论

0赞 John Gordon 9/13/2023
restaurant_name()括号在末尾,你试图像调用函数一样调用它。但这不是一个函数。取下括号。

答:

-1赞 Xiaomin Wu 9/13/2023 #1

您的代码有两个错误:

  1. 使用属性
  2. 调用不可调用的 PRPPERTY
class Restaurant:
    def __init__(self,restaurant_name,cuisine_type):
        self.restaurant_name=restaurant_name
        self.cuisine_type=cuisine_type
    
    def open_restaurant(self):
        print("The restaurant is open")
    
    def describe_restaurant(self):
        print("The restaurant's name is",restaurant_name,"and its cuisine_type is",cuisine_type) # restaurant_name -> self.restaurant and cuisine_type -> self.cuisine_type


restaurant=Restaurant('kadmi','indian')
print(restaurant.restaurant_name()) # restaurant.restaurant_name() -> restaurant.restaurant_name()