use*_*306 3 python abstract-class abc python-3.x
如何__init__在基本抽象类和派生抽象类中定义函数并self.*在抽象方法中都可用?例如:
利用在抽象类的基类中导入的函数的正确方法是什么?例如:在base.py中我有以下内容:
import abc
class BasePizza(object):
__metaclass__ = abc.ABCMeta
def __init__(self):
self.firstname = "My Name"
@abc.abstractmethod
def get_ingredients(self):
"""Returns the ingredient list."""
Run Code Online (Sandbox Code Playgroud)
然后我在diet.py中定义方法:
import base
class DietPizza(base.BasePizza):
def __init__(self):
self.lastname = "Last Name"
@staticmethod
def get_ingredients():
if functions.istrue():
return True
else:
return False
Run Code Online (Sandbox Code Playgroud)
但是,当我运行时,diet.py我只能访问self.lastname.我想要DietPizza两个self.firstname和self.lastname.我怎样才能做到这一点?
你BasePizza.__init__是一个具体的方法; 只需使用super()以下方法调用它:
class DietPizza(BasePizza):
def __init__(self):
super().__init__()
self.lastname = "Last Name"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7653 次 |
| 最近记录: |