`
54yuri
  • 浏览: 28351 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python 当中类的实例也能当函数使?靠__call__!(

阅读更多
python当中的一个class A的实例a1,经常看到有的源代码写成h = a1(), 这时候并不是调用A的构造函数,但是a1是个实例,怎么能够call呢,后来看了源代码发现,class A当中有这么一句

def __call__( self, *args ):

    ....



顿时领悟了,添加了这个方法后,实例就可以像函数一样使用了,有点像Javascript, 模糊了class和function的界限,不过python这里使用明确的__call__ 才跨越此界限
分享到:
评论

相关推荐

    C++调用Python3函数与类的实例代码

    总的来说,C++调用Python3函数与类的实例代码涉及到的关键技术包括Python C API的使用、Python对象的创建、调用、错误处理以及内存管理。通过这些技术,我们可以灵活地集成Python的灵活性和C++的性能,实现跨语言的...

    对python特殊函数 __call__()的使用详解

    一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。 我们把 Person 类变成一个可调用对象: class Person(object): def __init__(self, name, gender): self.name = name self.gender = ...

    python中__call__内置函数用法实例

    通过定义`__call__`方法,可以使类的实例具有函数的行为,从而实现仿函数、代理等功能。这种机制在很多场合都非常有用,比如实现装饰器、日志记录、状态管理等高级功能。理解和掌握`__call__`方法不仅可以提高代码的...

    浅谈python中的__init__、__new__和__call__方法

    最后是`__call__`方法,它使得一个类的实例可以像函数一样被调用。当一个对象被调用时,Python会执行`__call__`方法。这个方法可以用来实现一些特殊的行为,比如回调或者装饰器模式。例如: ```python class ...

    详解Python中的__new__、__init__、__call__三个特殊方法

    __call__ : 对象可call,注意不是类,是对象。 先有创建,才有初始化。即先__new__,而后__init__。 上面说的不好理解,看例子。 1.对于__new__ class Bar(object): pass class Foo(object): def __new__(cls, ...

    C++Call Python实例

    4. **调用Python函数**:一旦模块被加载,你可以使用`PyObject*`指针获取函数对象,并通过`PyObject_CallObject`或`PyCallable_Call`调用Python函数。传递参数需要转换为Python对象,如`PyArg_ParseTuple`用于解析...

    python 中的-call-方法.docx

    当定义了__call__方法的类实例化后,其实例对象就可以像函数一样使用括号调用。 使用: 在类中实现__call__方法后,类的实例对象就变得可调用。 调用实例对象时,实际上会执行__call__方法中的代码。 参数: __call_...

    Python中动态创建类实例的方法

    ### Python中动态创建类实例的方法 #### 背景与目的 在开发过程中,有时候我们需要在运行时根据类名来创建对应的对象实例。这种需求在Java中通常通过反射机制实现。而对于Python这样的动态语言,虽然没有传统的反射...

    Python中有趣在__call__函数

    在Python编程语言中,`__call__`函数是一个特殊的方法,它使得类的实例能够像函数一样被调用。这个特性让Python具有了高度的灵活性和可扩展性。通过实现`__call__`方法,我们可以自定义对象的行为,使得它们在被调用...

    python装饰器的4中类型:函数装饰函数、函数装饰类、类装饰函数、类装饰类

    函数可以被一个类实例化后的对象所装饰,这种情况下,类需要有一个`__call__`方法,因为当一个对象被当作函数调用时,Python会查找这个方法。 ```python class FunctionDecoratorClass: def __init__(self, func):...

    python类和函数中使用静态变量的方法

    在Python编程语言中,类和函数的静态变量通常是指那些在多次调用中保持其值不变的变量。静态变量在其他面向对象的语言如Java或C#中比较常见,但在Python中,由于其动态特性的存在,实现静态变量的方式稍有不同。本篇...

    python特殊函数

    在Python编程语言中,特殊函数(也称为魔术方法或双下划线方法)提供了一种机制,使开发人员能够为自定义类实现特定的行为。这些特殊函数通常以双下划线(`__`)开头并以双下划线结束,如`__init__`、`__str__`等。...

    python中__call__方法示例分析

    本文实例讲述了python中__call__方法的用法,分享给大家供大家参考。具体方法分析如下: Python中的__call__允许程序员创建可调用的对象(实例),默认情况下, __call__()方法是没有实现的,这意味着大多数实例是不...

    C++调用python3.5中的函数

    在这个例子中,我们创建了一个`PythonExecutor`实例,然后调用`callFunction`方法,传入模块名、函数名以及一个参数(在这里是一个整数)。需要注意的是,这个例子假设Python函数接受一个整数参数并返回一个值。 请...

    java调用python中的自定义函数函数

    接着,通过`get`方法获取了Python的`add`函数,并使用`__call__`方法调用该函数,传入两个`PyInteger`对象作为参数。最后,将返回的结果转换回Java的整型值并打印出来。 在实际开发中,可能需要处理更复杂的情况,...

    C++调用python函数

    - 调用Python函数:`PyObject_CallObject(func, args)`,`args`是传递给Python函数的参数。 3. **字符编码问题**: 描述中提到字符编码必须为UTF-8,这是因为在Python 3中,字符串默认使用UTF-8编码。因此,所有...

Global site tag (gtag.js) - Google Analytics