Python抽象正确调用基类导入库的方法

时间:2015-05-28 18:01:17

标签: python python-3.x abstract-class abc

利用在抽象类的基类中导入的函数的正确方法是什么?例如:在base.py中,我有以下内容:

import abc
import functions 

class BasePizza(object):
    __metaclass__  = abc.ABCMeta

    @abc.abstractmethod
    def get_ingredients(self):
         """Returns the ingredient list."""

然后我在diet.py中定义方法:

import base

class DietPizza(base.BasePizza):
    @staticmethod
    def get_ingredients():
        if functions.istrue():
            return True
        else:
            retrun False

但是,如果我尝试运行

python diet.py

我得到以下内容:

NameError: name 'functions' is not defined

如何让diet.py识别base.py导入的库?

1 个答案:

答案 0 :(得分:3)

抽象方法不关心实现细节

如果您需要特定模块用于特定的具体实现,则需要在模块中导入:

__init__

请注意,在多个地方中导入模块不需要额外费用。当模块在多个其他模块中使用时,Python会重新使用已创建的模块对象。