__call__

一、__call__

  • 对象后面加括号时,触发执行。
  • 注:构造方法的执行是由创建对象触发的,即:对象 = 类名() ;而对于\ __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()()
  • 先执行父类的__call__,然后在执行自己的__init__方法
class Foo:
def __init__(self):
print('__init__触发了') def __call__(self, *args, **kwargs): print('__call__触发了') obj = Foo() # 执行 __init__ obj() # 执行 __call__

__init__触发了

__call__

class Mymeta(type):
# def __call__(self, *args, **kwargs):
# print('进入__call__')
# return ty def __call__(self, *args, **kwargs): """
因为__call返回的空对象,所以要自己生成对象,通过__new方式)
:param args:
:param kwargs:
:return:
"""
print("__call__") # self ==> Person
# print(args)
# print(kwargs) # return self(*args) # 出现递归 # 实例化产生一个Person类的对象,借助__new__来产生,需要把类传过去,才能产生对象
self.__new__(self)
# obj 是Person类的对象,只不过是空的,
obj = object.__new__(self) # (因为__call返回的空对象,所以要自己生成对象,通过__new方式) # obj = self.__new__(self) # 调用__init__方法完成初始化
# 类来调用__init__方法, 就是个普通函数,有几个参数就要传几个参数
# self.__init__(obj, *args, **kwargs) # 对象来调用__init__方法,对象的绑定方法,会把自身传过去 obj.__init__(*args, **kwargs) print(obj)
return obj
class Person(object, metaclass=Mymeta):
school = 'hnnu' def __init__(self, name):
print('sd')
self.name = name def score(self):
print("分数100") def __call__(self, *args, **kwargs):
print('Person 进入__call__')
return 1 p = Person('randy')
p.name

__call__

1

person__init__

<__main__.Person object at 0x02CC4210>

_\_call\_\_的更多相关文章

  1. Spring_MVC_教程_快速入门_深入分析

    Spring MVC 教程,快速入门,深入分析 博客分类: SPRING Spring MVC 教程快速入门  资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf Spring ...

  2. 基于samba实现win7与linux之间共享文件_阳仔_新浪博客

    基于samba实现win7与linux之间共享文件_阳仔_新浪博客 然后启动samba执行如下指令: /dev/init.d/smb start 至此完成全部配置.

  3. 浅谈 Underscore.js 中 _.throttle 和 _.debounce 的差异

    Underscore.js是一个很精干的库,压缩后只有5.2KB.它提供了几十种函数式编程的方法,弥补了标准库的不足,大大方便了JavaScript的编程. 本文仅探讨Underscore.js的两个 ...

  4. CLOSE-UP FORMALWEAR_意大利进口_2015秋冬_男装发布会_西装图片系列_男装西装设计资料_WeArTrends时尚资讯网_国内最专业的服装设计资讯网站

    CLOSE-UP FORMALWEAR_意大利进口_2015秋冬_男装发布会_西装图片系列_男装西装设计资料_WeArTrends时尚资讯网_国内最专业的服装设计资讯网站 CLOSE-UP FORMA ...

  5. 聚焦设计交易与商业落地 DANG·DHUB设计师平台上线【图】_品牌资讯_服饰_太平洋时尚网

    聚焦设计交易与商业落地 DANG·DHUB设计师平台上线[图]_品牌资讯_服饰_太平洋时尚网 聚焦设计交易与商业落地 DANG·DHUB设计师平台上线

  6. 联系我们_你我想法_【有男度】UNANDU 100%进口 全球设计师品牌精汇 男装_男装搭配_时尚男装_品牌男装_男装搭配技巧_男装网站

    联系我们_你我想法_[有男度]UNANDU 100%进口 全球设计师品牌精汇 男装_男装搭配_时尚男装_品牌男装_男装搭配技巧_男装网站 联系我们 2012-02-17   国内北京公司总部  邮编 ...

  7. Payssion,海外本地支付_海外本地收款_小语种本地支付_外贸收款_外贸网店收款_欧洲本地支付_俄罗斯本地支付_巴西支付_跨境支付_PAYSSION,让跨境支付更轻松!

    Payssion,海外本地支付_海外本地收款_小语种本地支付_外贸收款_外贸网店收款_欧洲本地支付_俄罗斯本地支付_巴西支付_跨境支付_PAYSSION,让跨境支付更轻松!       首页 / 关于 ...

  8. 北京西服定做_衬衫定制_关于我们_Dimoon TLR.

    北京西服定做_衬衫定制_关于我们_Dimoon TLR.

  9. MUD江湖_MUD文字游戏_MUD五指_武林群侠_北侠_夺宝江湖_书剑_文字江湖游戏_MUD游戏下载

    MUD江湖_MUD文字游戏_MUD五指_武林群侠_北侠_夺宝江湖_书剑_文字江湖游戏_MUD游戏下载  武侠类手机文字游戏,经典再现高度自由玩法宠物 自制装备 师徒自立门派 自造武功欢迎来玩 Q群 1 ...

  10. 轻奢请向历史SAY NO_重青网_重庆青年报_重庆青年报电子版_重庆青年报网站_重庆青年报官方网站

    轻奢请向历史SAY NO_重青网_重庆青年报_重庆青年报电子版_重庆青年报网站_重庆青年报官方网站 轻奢请向历史SAY NO 经济学家George Taylor在他著名的"裙摆指数" ...

随机推荐

  1. 说说lock到底要锁谁?

    波安搬... http://www.cnblogs.com/wolf-sun/p/4209521.html ---------------------------------------------- ...

  2. springMVC:SSM整合

    环境要求 环境: IDEA MySQL 5.7.19 Tomcat 9 Maven 3.6 要求: 需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识: 数 ...

  3. Java的优先队列PriorityQueue详解

    一.优先队列概述 优先队列PriorityQueue是Queue接口的实现,可以对其中元素进行排序, 可以放基本数据类型的包装类(如:Integer,Long等)或自定义的类 对于基本数据类型的包装器 ...

  4. NVIDIA TX2--3--NVIDIA Jetson TX2 查看系统版本参数状态及重要指令

    NVIDIA Jetson TX2 查看系统参数状态. 当前博主的TX2更新的版本为:Jetpack 3.3, cuda 9.0.252, cudnn7.0, opencv3.3.1, TensorR ...

  5. 抗干扰性极强非接触式读卡13.56mhz芯片:SI522

    由于智能门锁产品不断地火爆,市场上的不断出现破解的方法.对此中科微联合深圳市动能世纪科技有限公司不断满足市场需求,推出一款抗干扰性极强的13.56mhz芯片. 该芯片出了抗干扰性强以外还直接PIN2P ...

  6. 04-String——课后作业1:字串加密

    题目:请编写一个程序,加密或解密用户输入的英文字串要求设计思想.程序流程图.源代码.结果截图. 程序设计思想:首先由用户选择是加密还是解密,利用String类中的charAt函数依次取出字串中的字符, ...

  7. Transaction Managament(事务管理一、概念)

    什么是事务 对于一个软件系统来说,我们需要相应的数据资源来保存体统状态.在对系统状态所依托的数据资源的时候,为了保证系统始终处于“正确”状态,我们必须对这些访问操作进行一些必要的限定.以保证系统状态的 ...

  8. python print %s 号格式化输出

    python %号格式化输出: 一种字符串格式化的语法, 基本用法是将值插入到%s占位符的字符串中. %s,表示格式化一个对象为字符 "%±(正负号表示)3(数字表示字符串的长度)s&quo ...

  9. SASS - 函数

    SASS – 简介 SASS – 环境搭建 SASS – 使用Sass程序 SASS – 语法 SASS – 变量 SASS- 局部文件(Partial) SASS – 混合(Mixin) SASS ...

  10. English Words and Expressions

    Words apprentice 学徒 corny 老套的 obnoxious 作呕的 intermezzo 间奏曲 predate 日期上早于 parenthesis 括号 delimiter 分隔 ...