VS Code为何将"function"标识为类?
VS Code中
function被高亮为类的原因 function本身不是Python全局命名空间里的内置类,但它确实和Python的函数类型密切相关:
- 所有自定义函数(包括lambda表达式)的底层类型就是
function,你可以通过type()函数验证:def my_func(): pass print(type(my_func)) # 输出 <class 'function'> - VS Code的语法高亮(通常由Pylance等插件提供)会识别这个和函数类型相关的名称,将其归类为“类型名称”进行特殊高亮,所以会显示成类的颜色。
但直接调用function()会触发NameError,因为这个名称并没有直接暴露在全局环境中。如果需要获取这个函数类型,得从types模块导入对应的类型(现在推荐用FunctionType,旧版里曾用function作为别名):
from types import FunctionType def my_func(): pass print(isinstance(my_func, FunctionType)) # 返回 True
内容的提问来源于stack exchange,提问作者sourcream
相关产品推荐
相关产品推荐

