Python继承和调用方法

2024-04-23 10:05:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试调用一种方法,它将返回冰淇淋摊的味道。下面是我的代码:

class Restaurant:
    """Defining Restaurants"""
    def __init__ (self, restaurant_name, cuisine_type):

        """Initializing a restaurant name and cuisine type"""
        self.restaurant_name = restaurant_name
        self.cuisine_type = cuisine_type
        self.number_served = 545

    def describe_restaurant(self):
        """Describing the restaurant"""
        print(self.restaurant_name.title() + " serves " + self.cuisine_type.title() + ".")

    def open_restaurant(self):
        """Stating the restaurant is open"""
        print(self.restaurant_name.title() + " is now open.")

    def set_number_served(self):
        """Method that sets the number served"""
        set_number_served = 430
        print("This restaurant has served " + str(set_number_served) + " customers.")

    def restaurant(self):
        """Statement showing how many customers have been served"""
        print("This restaurant has served " + str(self.number_served) + " customers.")

    def increment_number_served(self):
        self.number_served += 432
        print("This restaurant has served " + str(self.number_served) + " customers.")

class IceCreamStand(Restaurant):
    """Represents an ice cream stand"""
    def __init__(self, restaurant_name, cuisine_type, flavors):
        self.restaurant_name = restaurant_name
        self.cuisine_type = cuisine_type
        self.flavors = flavors

    def flavors(self):
        """Flavors of ice cream"""
        flavors = ['chocolate', 'vanilla', 'strawberry']
        for flavor in flavors:
            return flavor.title()

my_IceCreamStand = IceCreamStand('West Ice Cream', 'Dessert', 'multiple')
my_IceCreamStand.flavors()

我收到的错误如下:

Traceback (most recent call last):
  File "ice_Cream_Stand.py", line 45, in <module>
    my_IceCreamStand.flavors()

有什么想法吗

TypeError:“str”对象不可调用


Tags: thenameselfnumbertitledeftyperestaurant
1条回答
网友
1楼 · 发布于 2024-04-23 10:05:23

是的,您可以使用同名属性对方法进行阴影处理。在__init__中执行self.flavors = flavors,然后用

my_IceCreamStand = IceCreamStand('West Ice Cream', 'Dessert', 'multiple')

所以现在,每当您的实例使用self.flavors,它都会返回'multiple',这是一个字符串。然后尝试使用()像函数一样调用它,正如错误所说,字符串是不可调用的

更改属性或方法的名称,但它们不应具有相同的名称

相关问题 更多 >