首先,如果这令人困惑或者我不清楚,我想道歉。这是我第一次在stackoverflow.com上写作。
我必须写一个关于一家快餐店的蟒蛇节目。它有两种类型的餐供顾客选择。快餐包括肉类和配菜。大餐包括肉类,配菜,饮料和甜点。在这两个文件中 init 方法仅假设具有self参数。此外,我必须定义一个chooseMeat方法来选择肉类,一个chooseSide方法来选择副项目,以及一个displayOrder方法来显示所订购的项目。这是我到目前为止所做的。
>class ExpressMeal:
>> def __init__(self):
>>> self._meat = ' '
self._side = ' '
def chooseMeat(self):
return self._meat
def chooseSide(self):
return self._side
def displayOrder(self):
两个文件中的init 方法只有self参数。我必须使用此构造函数初始化实例变量以清空字符串。我必须调用ExpressMeal构造函数。另外,我想调用它 ExpressMeal类的displayOrder方法到此文件。我怎么能这样做?我提前道歉,因为我无法解决这个问题太多,因为我不明白如何使expressMeal.py工作。
from expressMeal import ExpressMeal
class MegaMeal(ExpressMeal):
def __init__(self):
base = super()
self._drink = ' '
self._dessert = ' '
我必须将megaMeal.py导入主模块文件,并要求用户选择快餐或大餐。 此外,我必须创建适当的对象并调用其方法来输入和显示客户选择的项目。我怎样才能实现这个? 我被困住了。我不明白我是怎么想把变量调用(对于expressMeal只是肉,而且对于megaMeal我必须称肉,侧,饮料和甜点)到主模块,如果__init__只是假设有自我参数,没有别的。这可能吗? 以下显示了在此程序上运行的示例
Enter 1 for express meal Enter 2 for mega meal: 1 You chose express meal Enter 1 for chicken sandwich Enter 2 for cheese burger: 2 Enter 1 for fries Enter 2 for chips: 1 Items ordered: cheese burger fries
程序假设在完成时执行这样的操作 我并不是要求它完全为我完成。但是,如果我可以获得如何使它与例子一起工作的帮助。任何帮助都非常感谢。提前谢谢。
答案 0 :(得分:1)
在Python中,“官方”常规方式是(在Python 3中)
class MegaMeal(ExpressMeal):
def __init__(self):
super().__init__()
self._drink = ' '
self._dessert = ' '
一种适用于Python 3和2的方式,并且IMO需要更少的“魔力”来理解用
替换super
调用
ExpressMeal.__init__(self)
在我看来,使用Python 2的super
太令人困惑,无法在你的关卡中被理解(或者甚至只是被记忆),所以只留下它。我知道高兴的Python程序员甚至不知道super
存在。