我发现了这种现象,我总是输入命令
from nltk import *
帮助命令不再起作用。我收到以下错误消息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'module' object is not callable
有人对这种现象有解释吗?
我在Python 3中用Visual Studio编写代码。
谢谢,并祝福, 马库斯
答案 0 :(得分:1)
没有直接关联,但如果您的计划是导入所有nltk,只需使用import nltk
即可。无需*
查看nltk.help模块,您需要使用其中定义的函数之一。由于nltk.help本身不是函数而是库位置。
请参阅:https://www.nltk.org/api/nltk.html?highlight=help#module-nltk.help
因此,如果这是您要使用的模块,请尝试:
import nltk
nltk.help.upenn_tagset()
答案 1 :(得分:1)
首先,从nltk导入$ python
# Native Python variables.
>>> vars()
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, '__package__': None}
>>> len(vars())
4
# After importing from *
>>> from nltk import *
>>> len(vars())
510
是一个坏主意。您使用许多未知/不清楚的变量污染您的命名空间。
nltk.help
接下来在Python中,模块不可调用,但函数是。
来自https://docs.python.org/3/tutorial/modules.html
如果您退出Python解释器并再次输入,您所做的定义(函数和变量)将丢失。因此,如果您想编写一个稍长的程序,最好使用文本编辑器为解释器准备输入并使用该文件作为输入运行它。这称为创建脚本。随着程序变长,您可能希望将其拆分为多个文件以便于维护。您可能还想使用您在多个程序中编写的便捷功能,而无需将其定义复制到每个程序中。
为了支持这一点,Python有一种方法可以将定义放在一个文件中,并在脚本或解释器的交互式实例中使用它们。这样的文件叫做模块;模块中的定义可以导入到其他模块或主模块中(在顶级和计算器模式下执行的脚本中可以访问的变量集合)。
模块是包含Python定义和语句的文件。文件名是附加后缀.py的模块名称。在模块中,模块的名称(作为字符串)可用作全局变量名称的值。
查看>>> from nltk import help
>>> type(help)
<type 'module'>
# A module is not callable.
>>> help()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'module' object is not callable
# A module contains definitions and statements.
>>> dir(help)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '_format_tagset', '_print_entries', 'brown_tagset', 'claws5_tagset', 'load', 'print_function', 're', 'upenn_tagset', 'wrap']
# A function is callable.
>>> type(help.brown_tagset)
<type 'function'>
>>> help.brown_tagset()
(: opening parenthesis
(
): closing parenthesis
)
*: negator
not n't
,: comma
,
--: dash
yada yada
模块:
{{1}}