我无法理解Python中的包。特别是,在Python包中的一个模块中有多个类是可能的。例如:
Kitchen/ Top-level package
__init__.py Initialize the package kitchen
Fridge.py module Fridge.py
Food This is a class in module Fridge
Temperature This is another class in module Fridge
Recipe.py
BeefStake This is a class in module Recipe.py
在__init__.py
中,代码将是:
from Fridge import Food, Temperature
from Recipe import BeefStake
__all__ = ['Fridge', 'Recipe']
然后我将创建一个Temperature类的实例
from Kitchen import *
f = Food()
T = Temperature()
我试过这个,但只让f = Food()
起作用。另一个出现了一个错误,比如NameError: name 'Temperature' is not defined
如果有人知道在Python包的一个模块中是否可能有两个这样的类。如果是这样,这种方法会有什么问题?你知道吗
你给我们看的代码既不能用于也不能用于
Food
或Temperature
。您可以显式地将其放入Kitchen
:这意味着,即使已将
Food
和Temperature
导入Kitchen
,也不会重新导出它们。因此,f = Food()
将引发NameError
。你知道吗如果您将此更改为,请说:
现在一切正常。你知道吗
我猜在你的真实代码中,你犯了两个错误之一:
__all__
中包含Temperature
,就像您在这里同时使用Food
和Temperature
一样,或者t = temperature()
和小写t
。你知道吗通常我会怀疑第一个更可能…但是考虑到你不符合大写,并且拼写错误
BeefSteak
,我会在这里检查第二个。你知道吗是的,在python中,一个模块中可以有多个类
相关问题 更多 >
编程相关推荐