[小知识]Python中__call__方法 @ Python

python中的__call__方法可以把class当做函数调用。例程如下:

#coding=utf-8

class A(object):

    def __init__(self, x):
        self.x = x

    def __call__(self, y):
        return self.x * y

C = A(10)
#C这个instance可以当做函数来调用
print C(5)
# 50
时间: 2024-10-26 19:52:19

[小知识]Python中__call__方法 @ Python的相关文章

python中__call__()方法的用法

__call__()的用法 __call__()方法能够让类的实例对象,像函数一样被调用: >>> >>> class A(object): def __call__(self, x): print('__call__ called, print x: ', x) >>> >>> a = A() >>> a('123') __call__ called, print x: 123 >>> 看a('1

python 中特殊方法简写方式

##python 中特殊方法简写方式 class Test: __call__ = lambda *args: args[1] * 2 #这里需要注意lambda的参数 会默认将实例self 加进去 __str__ = lambda self: 'that`s useful...%s' % self.__class__.__name__ t = Test() print(t) print(t(10)) 原文地址:https://www.cnblogs.com/alplf123/p/1029388

Python中strip方法的妙用

[开胃小菜] 当提到python中strip方法,想必凡接触过python的同行都知道它主要用来切除空格.有以下两种方法来实现. 方法一:用内置函数 #<python> if __name__ == '__main__': str = ' Hello world ' print '[%s]' %str.strip() #</python> 方法二:调用string模块中方法 #<python> import string if __name__ == '__main__

Python中__init__方法

注意1.__init__并不相当于C#中的构造函数,执行它的时候,实例已构造出来了. 1 2 3 4 5 class A(object):     def __init__(self,name):         self.name=name     def getName(self):         return 'A '+self.name 当我们执行 1 a=A('hello') 时,可以理解为 1 2 a=object.__new__(A) A.__init__(a,'hello')

Python中__call__的用法

概念: Python中有一个有趣的语法,只要定义类型的时候,实现__call__函数,这个类型就成为可调用的.换句话说,我们可以把这个类型的对象当作函数来使用,相当于 重载了括号运算符.  示例: 所有的函数都是可调用对象.一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__ ,我们把 Person 类变成一个可调用对象: class Person(object): def __init__(self, name, gender): self.name = name sel

Python类__call__()方法

在python中,创建类型的时候定义了__call__()方法,那这个类型创建出来的实例就是可调用的.例def如: class A(object): def __init__(self,name,age): self.name=name self.age=age def __call__(self): print("this is __call__ method") a=A('gt',17) a()------>this is __call__ method 原文地址:https

python中defaultdict方法的使用

默认值可以很方便 众所周知,在Python中如果访问字典中不存在的键,会引发KeyError异常(JavaScript中如果对象中不存在某个属性,则返回undefined).但是有时候,字典中的每个键都存在默认值是非常方便的.例如下面的例子: strings = ('puppy', 'kitten', 'puppy', 'puppy', 'weasel', 'puppy', 'kitten', 'puppy') counts = {} for kw in strings: counts[kw]

python中__unicode__方法的使用

python中__unicode__(self):方法: __unicode()方法告诉python如何实现对象的unicode表示.如以下数据模型:class Host(models.Model):    id = models.AutoField(primary_key=True)    ip = models.CharField('IP地址', max_length=16, blank=True, null=True)    name = models.CharField('主机名称',

sort()方法 | sorted()函数 | __call__()方法 | Python

# sort()方法与sorted()函数的区别: # sort()方法是在原可迭代对象直接修改: # sorted()函数是返回一个新的可迭代对象: # 例子:根据列表中哪个数据更靠近10来排序: # 1.lambda() >> list_first = [1,4,7,9,33,22,55,77] >> list_first.sort(key=lambda x:abs(x-10)) >> print(list_first) >> [9, 7, 4, 1,