• python 面向对象__call__


    [oracle@node01 0914]$ cat a1.py 
    class Person(object):
        def __init__(self, name, gender):
            self.name = name
            self.gender = gender
        def query(self,friend):
            print self.name
            print self.gender
            self.friend=friend
            print self.friend
     
    h=Person('aa','bb')
    h.query('cc')
    
    
    [oracle@node01 0914]$ python a1.py 
    aa
    bb
    cc
    [oracle@node01 0914]$ 
    
    
    
    [oracle@node01 0914]$ cat a2.py 
    class Person(object):
        def __init__(self, name, gender):
            self.name = name
            self.gender = gender
        def __call__(self,friend):
            print self.name
            print self.gender
            self.friend=friend
            print self.friend
    p=Person('Bob', 'male')
    p('Tim')
    [oracle@node01 0914]$ python a2.py 
    Bob
    male
    Tim
    
    一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。

  • 相关阅读:
    Annotation
    bulid tools
    Git&Version Control
    uri&url
    HTTP &RFC
    git创建新分支
    git忽略提交文件
    redis集群搭建
    java中的线程安全是什么:
    Spring事务传播机制与隔离级别
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349538.html
Copyright © 2020-2023  润新知