gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:48 25 4
gpt4 key购买 nike

使用在抽象类的基类中导入的函数的正确方法是什么?例如:在 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 导入的库?

最佳答案

抽象方法本身不关心实现细节

如果您的特定具体实现需要特定模块,则需要将其导入到您的模块中:

import base
import functions


class DietPizza(base.BasePizza):
@staticmethod
def get_ingredients():
return functions.istrue()

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

关于Python抽象调用基类中导入库的正确方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30513903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com