如果我有一个名为Physics的模块,其中写了4个类,并且我想在我的主文件中创建包含所有这些类的对象,我可以这样做:
import Physics
还是我需要通过说出每个个体类来导入
:from Physics import ClassA
from Physics import ClassB`
等等?我问是因为我只是尝试导入模块名称,但这会让我从一个类中实例化一个对象。
答案 0 :(得分:0)
您可以执行以下任何操作:
from Physics import ClassA , ClassB
a = ClassA()
b = ClassB()
import Physics
a = Physics.ClassA()
b = Physics.ClassB()
from Physics import ClassA
from Physics import ClassB
a = ClassA()
b = ClassB()
from Physics import *
a = ClassA()
b = ClassB()
由于标准约定较为简洁,同时又很明确,因此通常比第一个更喜欢第一个约定。
答案 1 :(得分:0)
有很多方法可以导入东西。如果您打算使用很多东西而该模块中的名称并不常见,则可以
from physics import *
或
from physics import ClassA, ClassB, ClassC
执行此操作时,使用模块中的名称时无需引用模块名称。示例:
object = ClassA()
如果您仅使用模块中的一些内容,或者该模块具有通用名称的内容(例如sys的exit()就像python的exit()一样),则可以考虑仅导入整个模块,这样您就可以知道是否来自模块。但是,这样做时,每次使用该模块中要使用的内容时,都必须引用该模块的名称。
import sys
sys.exit()
某些模块的名称更长,每次使用它时,键入它都会很烦人。因此,人们经常将导入的模块保存到变量中:
import physics as phy
object = phy.ClassA()