可调用对象

在python中, 如果可以像使用函数(使用调用符号())那样使用的对象, 都叫可调用对象.


python的7种可调用对象

1. 用户自定义的函数

使用def语句或lambda表达式创建

2. 内置函数

使用C(Cpyhon)语言实现的函数, 如len()

3. 内置方法

使用C语言实现的方法, 如dict.get().

4. 方法

在类的定义体中定义的函数

5. 类

调用类时, 会首先运行类的__new__()方法创建一个实例, 然后运行__int__()方法来初始化这个实例, 最后把实例返回给调用方.

因为python没有new运算符, 所以调用类, 相当于调用函数.

6. 类的实例

在python中, 类的实例也可以调用, 这是python与其他语言的一个很大的区别.

如果类定义了__call__()方法, 则它的实例可以作为函数一样调用, 其实就是调用的__call__()方法.

7. 生成器函数

使用 yield 关键字的函数或方法。调用生成器函数返回的是生成器对象。


判断一个类型是否可调用

Python 中有各种各样可调用的类型,因此判断对象能否调用,最安全的方法是使用内 置的 callable() 函数:

class My1(object):
    pass


class My2(object):
    def __call__(self, *args, **kwargs):
        print("实例也可以被调用了, 很神奇吧")


m1 = My1()
m2 = My2()
m2()

list1 = [My1, m1, My2, m2, abs, 4]
list2 = [callable(x) for x in list1]
print(list2)

Copyright © 李振超 2018 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-02-25 07:12:09

results matching ""

    No results matching ""