0

0

Python中function函数_Python内置function函数的详解

煙雲

煙雲

发布时间:2026-01-08 13:25:02

|

505人浏览过

|

来源于php中文网

原创

Python中没有名为function的内置函数,function是types.FunctionType的字符串表示;判断对象是否为函数应使用callable()或isinstance(obj, types.FunctionType)。

python中function函数_python内置function函数的详解

Python 里没有叫 function 的内置函数,function 是类型名(type 的一个实例),不是可调用的内置函数。你查不到 help(function),也调用不了 function(...) —— 它根本不是函数。

怎么判断一个对象是不是函数?用 callable()isinstance(..., types.FunctionType)

想确认某东西是不是函数,别猜,用标准方式:

  • callable(obj) 最常用:返回 True 表示能加括号调用(包括函数、类、有 __call__ 的实例)
  • 要严格限定“就是 def 或 lambda 定义的函数”,得导入 types
    import types
    def f(): pass
    isinstance(f, types.FunctionType)  # True
    isinstance(len, types.FunctionType)  # False(len 是 builtin_function_or_method)
  • types.FunctionType 不涵盖内置函数(如 printlen)、@staticmethod@classmethod,它们属于不同类型

type(lambda: None) 返回什么?为什么不是 function

交互式环境里敲:

type(lambda: None)
# 
注意:这里的 function 是类名显示,不是字符串 'function',也不是可导入的顶层名称。它等价于 types.FunctionType,但你不能直接写 function 当类型用:

  • isinstance(f, function)NameError: name 'function' is not defined
  • 必须写 isinstance(f, types.FunctionType)
  • function 这个名字只在 repr__name__ 里出现,不作为内置标识符存在

常见误用:把 function 当成构造器或类型注解

以下写法全错:

  • f = function(lambda x: x)NameError(没有这个构造函数)
  • def g(x: function) -> function: → 类型检查器报错(应写 Callabletypes.FunctionType
  • from builtins import function → 找不到该名字

正确替代方案:

PHP 网络编程技术与实例(曹衍龙)
PHP 网络编程技术与实例(曹衍龙)

PHP网络编程技术详解由浅入深,全面、系统地介绍了PHP开发技术,并提供了大量实例,供读者实战演练。另外,笔者专门为本书录制了相应的配套教学视频,以帮助读者更好地学习本书内容。这些视频和书中的实例源代码一起收录于配书光盘中。本书共分4篇。第1篇是PHP准备篇,介绍了PHP的优势、开发环境及安装;第2篇是PHP基础篇,介绍了PHP中的常量与变量、运算符与表达式、流程控制以及函数;第3篇是进阶篇,介绍

下载

立即学习Python免费学习笔记(深入)”;

  • 构造可调用对象:用 lambdadef、或 types.FunctionType(code, globals, name)(极少见,需字节码知识)
  • 类型提示:用 from typing import Callable,例如 Callable[[int], str]

真正需要区分函数类型时,types 模块里的具体类型(FunctionTypeBuiltinFunctionTypeMethodType)比凭名字猜测可靠得多;而日常判断“能不能调用”,callable() 就够了——别被 的显示误导去搜不存在的内置函数。

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

737

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

633

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

755

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

617

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1259

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

547

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

577

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

705

2023.08.11

Golang 分布式缓存与高可用架构
Golang 分布式缓存与高可用架构

本专题系统讲解 Golang 在分布式缓存与高可用系统中的应用,涵盖缓存设计原理、Redis/Etcd集成、数据一致性与过期策略、分布式锁、缓存穿透/雪崩/击穿解决方案,以及高可用架构设计。通过实战案例,帮助开发者掌握 如何使用 Go 构建稳定、高性能的分布式缓存系统,提升大型系统的响应速度与可靠性。

27

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.6万人学习

Django 教程
Django 教程

共28课时 | 2.9万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号