python中调用什么模块的什么函数,python模块的使用
python有三种导入模块的方法感谢原作者Allenw
原始地址
首先,
Import modname:模块是指可以交互使用或从另一个Python程序访问的代码段。只要导入了一个模块,就可以引用它的任何公共函数、类或属性。该模块可以以这种方式使用其他模块的功能。
使用import语句导入模块会在当前命名空间中创建对该模块的引用。该引用必须使用全名,也就是说,当使用导入的模块中定义的函数时,它必须包括模块的名称。所以不能只用funcname,应该用modname.funcname
第二,
from Modname Import funcname from Modname Import FA,FB,FC或者from modname import *与第一种方法的区别在于,Funcname是直接导入到本地命名空间的,所以可以不受模块名的限制直接使用。
*表示模块的所有公共对象都导入到当前命名空间中,也就是说,任何不以“_”开头的都将被导入。
Modname没有定义,所以modname.funcname不能这样工作。并且,如果funcname已经被定义,它将被一个新的版本(在这个导入模块中的版本)替换。如果把funcname改成指向其他对象,modname也不能不注意到。
建议:
1)如果想经常访问模块的属性和方法,又不想反复输入模块名,就用from module import。
2)如果您想选择性地导入一些属性和方法,而不是其他属性和方法,请使用从模块导入。
3)如果某个模块包含与您的某个模块同名的属性和方法,您必须使用导入模块以避免名称冲突。
4)尽量少用from module import *,因为很难确定一个特殊的函数或属性来自哪里,而且会增加调试和重构的难度。
第三,
内置函数__import__()
除了使用import关键字的前两种方法,我们还可以使用内置函数import()来导入模块。两者的区别在于import后面必须跟一个类型,import()的参数是一个字符串,可能来自配置文件,也可能是表达式求值的结果。例如
mymodule=import(模块名称)
注意:
1)模块的所有内容都放在一个模块文件中,比如mymodule,这个文件应该放在PYTHONPATH目录下的mymodule.py中,c实现的除外。
2)一个包可以组织几个模块命名空间,比如A.b是包A中的子模块B。
您可以单独导入一个子模块,例如Python文档中给出的例子。
导入声音.效果.回声
这样,必须用全称来指代里面的对象,比如
声音.效果.回声.回声滤波器(输入,输出,延迟=0.7,衰减=4)
您还可以使用下面的语句来加载echo子模块
从声音上。效果导入回声
它也可以不带包前缀使用,因此可以按如下方式调用:
echo.echofilter(输入,输出,延迟=0.7,衰减=4)
不建议使用import *从一个包或模块中导入所有模块,因为这通常会导致可读性较差。
包导入specific _ submodule的用法没有问题。事实上,这是推荐的用法,除非导入的模块需要使用来自不同包的同名子模块。
综上所述,一般应该使用import,但也有少数例外。
1)1)模块文档告诉您使用from-import
2)导入包组件。您需要一个包中的子模块。一般从A.B. C使用比进口A.b.c更方便,没有混淆的风险。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。