`

python --- Python中的callable 函数

 
阅读更多
转自: http://archive.cnblogs.com/a/1798319/

Python中的callable 函数

callable 函数, 可以检查一个对象是否是可调用的 (无论是直接调用或是通过 apply). 对于函数, 方法, lambda 函式, 类, 以及实现了 _ _call_ _ 方法的类实例, 它都返回 True.

def dump(function):if callable(function):print function, “is callable”else:print function, “is *not* callable”class A:def method(self, value):return valueclass B(A):def _ _call_ _(self, value):return valuea = A()b = B()dump(0) # simple objectsdump(”string”)dump(callable)dump(dump) # functiondump(A) # classesdump(B)dump(B.method)dump(a) # instancesdump(b)dump(b.method)0 is *not* callablestring is *not* callable<built-in function callable> is callable<function dump at 8ca320> is callableA is callableB is callable<unbound method A.method> is callable<A instance at 8caa10> is *not* callable<B instance at 8cab00> is callable<method A.method of B instance at 8cab00> is callable注意类对象 (A 和 B) 都是可调用的; 如果调用它们, 就产生新的对象(类实例). 但是 A 类的实例不可调用, 因为它的类没有实现 _ _call_ _ 方法.你可以在 operator 模块中找到检查对象是否为某一内建类型(数字, 序列, 或者字典等) 的函数. 但是, 因为创建一个类很简单(比如实现基本序列方法的类), 所以对这些 类型使用显式的类型判断并不是好主意.在处理类和实例的时候会复杂些. Python 不会把类作为本质上的类型对待; 相反地, 所有的类都属于一个特殊的类类型(special class type), 所有的类实例属于一个特殊的实例类型(special instance type).这意味着你不能使用 type 函数来测试一个实例是否属于一个给定的类; 所有的实例都是同样 的类型! 为了解决这个问题, 你可以使用 isinstance 函数,它会检查一个对象是 不是给定类(或其子类)的实例. Example 1-15 展示了 isinstance 函数的使用.
def dump(function):

if callable(function):
print function, “is callable”
else:
print function, “is *not* callable”
class A:
def method(self, value):
return value
class B(A):
def _ _call_ _(self, value):
return value
a = A()
b = B()
dump(0) # simple objects
dump(”string”)
dump(callable)
dump(dump) # function
dump(A) # classes
dump(B)
dump(B.method)
dump(a) # instances
dump(b)
dump(b.method)
0 is *not* callable
string is *not* callable
<built-in function callable> is callable
<function dump at 8ca320> is callable
A is callable
B is callable
<unbound method A.method> is callable
<A instance at 8caa10> is *not* callable
<B instance at 8cab00> is callable
<method A.method of B instance at 8cab00> is callable
注意类对象 (A 和 B) 都是可调用的; 如果调用它们, 就产生新的对象(类实例). 但是 A 类的实例不可调用, 因为它的类没有实现 _ _call_ _ 方法.
分享到:
评论

相关推荐

    Python 内置函数速查手册-函数大全和示例

    Python 内置函数是语言的核心组成部分,提供了许多方便的功能,帮助开发者高效地编写代码。以下是一些关键内置函数的详细说明: 1. **abs()**: - `abs()` 函数返回数字的绝对值,无论该数字是正还是负。例如,`...

    python内置函数大全

    Python内置函数涉及了Python编程语言中最基础的函数集合,它们是Python标准库的一部分,允许程序员在不引用外部模块的情况下执行常见操作。下面我将详细介绍一些常用的Python内置函数,并对它们的功能进行解释。 1....

    python函数大全

    ### Python函数大全:掌握核心内置函数的全面指南 在Python编程的世界里,内置函数是构建高效、优雅代码的基石。本文旨在深入解析Python的核心内置函数,帮助初学者和经验丰富的开发者更好地理解和应用这些功能强大...

    Python callable内置函数原理解析

    在Python编程语言中,`callable()` 是一个内置的函数,它的主要作用是判断传入的对象是否可以被调用,即该对象是否具有可调用的属性。了解`callable()`的原理和使用对于深入理解Python对象行为至关重要。接下来,...

    python内置函数.pdf

    在"python内置函数.pdf"这份文档中,主要介绍了四个关键部分:常用函数、内置类型转换函数、序列处理函数以及String模块。下面将详细阐述这些知识点。 1. **常用函数** - `abs(x)`:这个函数返回数字(包括复数)...

    Python callable()函数用法实例分析

    python中的内建函数callable( ) ,可以检查一个对象是否是可调用的 。 对于函数, 方法, lambda 函数式, 类, 以及实现了 _ _call_ _ 方法的类实例, 它都返回 True. &gt;&gt;&gt; help(callable) Help on built-in function ...

    python函数大全.pdf

    Python 函数大全 Python 内置函数大全是 Python 语言的基础组件之一,了解这些函数可以帮助开发者更好地使用 Python 语言。本文将对 Python 的内置函数进行分类和介绍。 数学运算类 * `abs(x)`: 求绝对值,参数...

    Python内置函数案例演示.pdf

    由于提供的文件内容中包含了大量重复的警告和版权声明,并没有给出具体的Python内置函数的介绍和代码示例,所以无法从这部分内容中提炼出具体的知识点。不过根据标题和描述,我可以为你详细说明Python内置函数的相关...

    PyPI 官网下载 | callable_journal-0.0.2-py3-none-any.whl

    在Python中,可调用对象包括函数、类方法、实例方法等。这个库的设计目标是帮助开发者追踪代码执行的轨迹,以便于调试、测试和性能优化。 Callable Journal的工作原理是通过装饰器(Decorator)对目标函数进行包装...

    python常用函数

    根据给定的文件信息,以下是对“Python常用函数”中提到的部分内建函数的详细解析,这些函数在Python编程中非常实用,可以帮助开发者更高效地完成各种任务。 ### 1. abs() `abs()` 函数用于计算数值的绝对值。对于...

    python常用的函数[文].pdf

    2. callable(obj):查看一个obj是否可以像函数一样调用。 3. repr(obj):得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝。 4. eval(str):表示合法的Python表达式,返回这个表达式。 5. dir(obj)...

    python函数速查手册,留作备用

    在这个Python函数速查手册中,我们主要探讨的是Python中的内建函数和字符串内置方法。 首先,让我们来了解一下内建函数。内建函数是Python语言自带的一系列预定义函数,可以直接在任何地方使用,无需额外导入。以下...

    python内建函数

    下面是 Python 中一些常用的内建函数: 1. abs(x) 函数:返回数字(可为普通型、长整型或浮点型)的绝对值。如果给出复数,返回值就是该复数的模。 abs() 函数可以应用于各种数字类型的数据,例如整数、浮点数、...

    python2.6库函数参考手册

    《Python2.6库函数参考手册》是一本详尽介绍了Python2.6版本中的内置库及其用法的手册。该手册由Python之父Guido van Rossum与编辑Fred L. Drake, Jr.共同编撰,并于2008年10月2日发布。本书旨在为开发者提供全面且...

Global site tag (gtag.js) - Google Analytics