如果我有一个名为FunctionLibrary
的模块,那么如果我使用import FunctionLibrary
和from FunctionLibrary import *
导入会有什么不同?
在FunctionLibrary
里面可能有一个函数列表,或者可能是一个用方法和变量定义的类,任何东西。
请建议。
答案 0 :(得分:5)
调用导入函数的不同之处。
我假设你有foo()
和bar()
函数。
比较一下:
import FunctionLibrary
FunctionLibrary.foo()
FunctionLibrary.bar()
和此:
from FunctionLibrary import *
foo()
bar()
你知道差异吗?第一个需要模块的名称来调用函数,而后者允许你调用函数而不需要任何前缀。
但两种方式都不是推荐。你应该使用
from FunctionLibrary import foo, bar as fl_bar
foo()
fl_bar()
这最后一种方法允许你编写别名来调用python函数。如果导入的模块具有相同名称的函数(或其他内容),则需要这样做。
您也可以为您的图书馆添加别名
from FunctionLibrary fl import bar as b
fl.b() # calls FunctionLibrary.bar()
答案 1 :(得分:0)
除了以下内容之外没有区别:
对于import FunctionLibrary
,您的代码必须为:
FunctionLibrary.method1()
FunctionLibrary.method2()
优势:使用大量导入或代码,您可以轻松管理类所属的方法,尤其是在导入脚本中使用与导入脚本相同的名称方法时。
对于from FunctionLibrary import *
,您的代码必须为:
method1()
method2()
优势:基本上省略了详细信息。
代替第二种方法,通常应该使用类似的东西:
import FunctionLibrary as flib
然后你可以这样做:
flib.method1()
flib.method2()
此外,如果您要使用特定方法,请执行:
from FunctionLibrary import method1, method2