无参数类内函数的面向对象编程(python)

无参数类内函数的面向对象编程(python),python,class,oop,parameters,abstract-class,Python,Class,Oop,Parameters,Abstract Class,编辑:我希望这能更清楚地表达我的担忧我明白,对于我正在寻求答案的问题,这需要很多信息。此外,ExpressDine和MegaDine位于两个不同的文件中。用户必须输入1或2,我想用它调用实例变量。 我的问题是粗体的,其余的是这个节目的背景知识 首先,我想道歉,如果这是混淆或如果我没有说清楚。这是我第一次在stackoverflow.com上写作 我必须写一个关于快餐店的python程序。它有两种餐食供顾客选择。速食包括肉和配菜。大餐包括肉、配菜、饮料和甜点。在这两个文件中,init方法只假设有s

编辑:我希望这能更清楚地表达我的担忧我明白,对于我正在寻求答案的问题,这需要很多信息。此外,ExpressDine和MegaDine位于两个不同的文件中。用户必须输入1或2,我想用它调用实例变量。 我的问题是粗体的,其余的是这个节目的背景知识

首先,我想道歉,如果这是混淆或如果我没有说清楚。这是我第一次在stackoverflow.com上写作

我必须写一个关于快餐店的python程序。它有两种餐食供顾客选择。速食包括肉和配菜。大餐包括肉、配菜、饮料和甜点。在这两个文件中,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参数。我必须使用这个构造函数将实例变量初始化为空字符串。我必须调用ExpressDine构造函数。此外,我还想调用 此文件的ExpressDine类的displayOrder方法。我该怎么做呢?我事先表示歉意,因为我无法在这方面做太多的工作,因为我不知道如何使expressme餐.py正常工作

from expressMeal import ExpressMeal
class MegaMeal(ExpressMeal):
    def __init__(self):
         base = super()
         self._drink = ' '
         self._dessert = ' '
我必须将MegaDine.py导入主模块文件,并要求用户选择express Dine或MegaDine我还必须创建适当的对象并调用其方法来输入和显示客户选择的项目。我如何才能做到这一点<我被卡住了。我不明白如果uu init uuu只假设有self参数,没有其他参数,我应该如何将变量(对于ExpressMein,只调用meat和side,但是对于MegaMeat,我必须调用meat、side、饮料和甜点)调用到主模块。这可能吗? 下面显示了在此程序上运行的示例

输入1表示速食
输入2作为超级套餐:1
你选择了速食
输入1表示鸡肉三明治输入2表示奶酪汉堡:2
输入1表示薯条输入2表示薯条:1
订购物品:奶酪汉堡薯条

当程序完成时,应该是这样执行的 我不是要求为我做全部的事情。但如果我能得到帮助,如何让它与例子一起工作。非常感谢您的帮助。提前感谢。

在Python中,“官方”的正常方式是(在Python 3中)

对于在Python3和Python2中都能工作并且IMO需要更少的“魔力”来理解的方法,请将
super
调用替换为

ExpressMeal.__init__(self)

在我看来,Python2的
super
太混乱了,在您的级别上无法理解(甚至无法记忆),所以请不要管它。我知道快乐高效的Python程序员甚至不知道
super
的存在。

我想象
chooseMeat
chooseSide
应该在类中设置肉和边值,不返回值只是对你的问题提出一些建议:你有很多不相关的细节,很难确定什么是重要的,什么是不重要的。在我明白只有最后一段才有你要问的重要信息之前,我已经把整件事读了三遍。我没有读你所有的问题,但是这个“init只假设有self参数,没有其他的。”是不正确的!只要第一个参数是self,就可以使用任意多的参数调用init。对此我深表歉意,我试图尽可能清楚,但结果是最糟糕的@Ni根据本程序的指令,“仅假设init具有self参数”。
ExpressMeal.__init__(self)