python面向对象中的__call__方法

在Python面向对象编程中,__call__方法允许一个类的实例像函数一样被调用

当一个类定义了__call__方法后,该类的实例就成为了可调用对象(callable)。这意味着你可以像调用函数那样使用类的实例,即在实例后面加上括号()来执行。这种机制通常用于那些需要以类似函数的方式调用的对象,比如某些特定的设计模式中的类。

下面看一个例子:

class A(object):
    def __init__(self, name):
        self.name = name

    # call方法
    def __call__(self, *args, **kwargs):
        print('__call__被调用了')

    # 自定义函数
    def my_func(self):
        print('my_func被调用了')

# 创建A类 并实例化对象a
a = A('lyj')

# 自定义函数
a.my_func()  # my_func被调用了

# call方法
a()  # __call__被调用了

需要注意的是:只有当类定义了__call__方法时,实例才能像函数一样被调用。如果没有定义__call__方法,则无法通过实例加括号的方式直接调用实例的方法或属性

相关推荐

  1. python面向对象__call__方法

    2024-03-13 07:10:07       24 阅读
  2. Pythonnew和call方法

    2024-03-13 07:10:07       23 阅读
  3. Python面向对象编程

    2024-03-13 07:10:07       38 阅读
  4. python面向对象

    2024-03-13 07:10:07       12 阅读
  5. go函数与方法区别与go关于面向对象理解

    2024-03-13 07:10:07       19 阅读
  6. 面向过程和面向对象方式

    2024-03-13 07:10:07       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-13 07:10:07       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-13 07:10:07       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-13 07:10:07       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-13 07:10:07       18 阅读

热门阅读

  1. Hadoop面经

    2024-03-13 07:10:07       18 阅读
  2. Android 悬浮窗相关

    2024-03-13 07:10:07       19 阅读
  3. 【论文题目】数据分析-精选论文选题指南

    2024-03-13 07:10:07       19 阅读
  4. HTTP,HTTPS,WebSocket协议辨析

    2024-03-13 07:10:07       19 阅读