我们经常看到各种各样的方法已经被包围了由双下划线,例如__init__,他们是魔术方法.

魔术方法python语言预订好"协议",在不同情况下不同的魔术方法,是隐式调用.我们重写这些方法,因此,操纵各种行为.

class A(object):
def __str__(self):
return "I am A,2333"
def __len__(self):
return 42
a = A()
print a#输出 "I am A,2333"
print len(a)#输出42

能够看到,print语句会隐式调用__str__方法,len()会隐式调用__len__方法.

python预定了丰富的魔术方法,使得我们能够对多种行为进行细粒度的操控,用起来各种酸爽,很多其它的魔术方法请看<Python 魔术方法指南>

版权声明:本文博客原创文章,博客,未经同意,不得转载。

流动python - 什么是魔术方法(magic method)的更多相关文章

  1. Python魔术方法-Magic Method

    介绍 在Python中,所有以"__"双下划线包起来的方法,都统称为"Magic Method",例如类的初始化方法 __init__ ,Python中所有的魔 ...

  2. Python 类的魔术方法

    Python中类的魔术方法 在Python中以两个下划线开头的方法,__init__.__str__.__doc__.__new__等,被称为"魔术方法"(Magic method ...

  3. Python中的魔术方法详解

    介绍 在Python中,所有以“__”双下划线包起来的方法,都统称为“Magic Method”,中文称『魔术方法』,例如类的初始化方法 __init__ ,Python中所有的魔术方法均在官方文档中 ...

  4. Python中的魔术方法详解(双下方法)

    介绍 在Python中,所有以“__”双下划线包起来的方法,都统称为“Magic Method”,中文称『魔术方法』,例如类的初始化方法 __init__ ,Python中所有的魔术方法均在官方文档中 ...

  5. Python - 面向对象编程 - 魔术方法(双下划线方法)

    什么是魔术方法 在Python中,所有以 __ 双下划线包起来的方法,都统称为 Magic Method 魔术方法,也叫双下划线方法 有哪些重要的魔术方法? __new__ https://www.c ...

  6. php中的魔术方法(Magic methods)和魔术常亮

    PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __destruct(),类的析构函数 __cal ...

  7. Python学习笔记之面向对象编程(三)Python类的魔术方法

    python类中有一些方法前后都有两个下划线,这类函数统称为魔术方法.这些方法有特殊的用途,有的不需要我们自己定义,有的则通过一些简单的定义可以实现比较神奇的功能 我主要把它们分为三个部分,下文也是分 ...

  8. Python类之魔术方法

    一.什么是魔术方法? 在Python的方法,我们经常会遇见__XXX__(),这样的方法,我们一般称为"魔术方法",赶紧搬个小板凳,我们一起来看看魔术方法有啥神奇的地方,这些方法又 ...

  9. python所有的魔术方法

    据说,Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,他们是面向对象的 Python 的一切. 他们是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个, ...

随机推荐

  1. VS2010调用VLFeat

    相比OpenCV,VLFeat的代码全是开源,并且非常重要的一点,事实上现的sift和Low的精度差点儿相同,这个团队全是码神,膜拜一下. 依照以下的网址进行安装,本人已经装上了,确实能够的. 安装參 ...

  2. hdu3033(变形分组背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3033 题意:Iserlohn要买鞋,有k种牌子,每种牌子至少买一双鞋子.每双鞋子有标价跟实际价值.求用 ...

  3. 【IOS实例小计】今日开贴,记录我的ios学习生涯,留下点滴,留下快乐,成荫后人。

    今天开贴来记录自己的ios学习过程,本人目前小白一个,由于对ios感兴趣,所以开始学习,原职java程序,呵呵,勿喷. 本次的[ios实例小计]主要参考一文http://blog.sina.com.c ...

  4. c#控制台应用程序-“进入指定日期检查出星期几”

    这涉及一个算法: 基姆拉尔森计算公式 W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1) mod 7 在公式中d表示日期中的日数.m表示月份数.y表示年数. 注意:在公式 ...

  5. H3C低端交换机MAC绑定

    1.MAC地址和端口的绑定<h3c>system[h3c]interface e0/1[h3c-interface]mac-address max-count #关闭交换机端口的MAC学习 ...

  6. 自己定义 ViewGroup 支持无限循环翻页之三(响应回调事件)

    大家假设喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处,再次感谢 ################################ ...

  7. Java的JXL操作xls形式

    jxl这是一个韩国的写作java操作excel工具, 源世界中,有两套比較有影响的API可供使用.一个是POI,一个是jExcelAPI.当中功能相对POI比較弱一点.但jExcelAPI对中文支持非 ...

  8. 查看mysql当前表使用的存储引擎(转)

    说明:当我们创建表 “test”表时 CREATE TABLE test ( id INT(11) default NULL auto_increment, s char(60) default NU ...

  9. Set vs. Set<?>(转)

    You may know that an unbounded wildcard Set<?> can hold elements of any type, and a raw type S ...

  10. Codeforces Round #253 (Div. 1) (A, B, C)

    Codeforces Round #253 (Div. 1) 题目链接 A:给定一些牌,然后如今要提示一些牌的信息,要求提示最少,使得全部牌能够被分辨出来. 思路:一共2^10种情况,直接暴力枚举,然 ...