美文网首页
2-1 什么是魔法函数

2-1 什么是魔法函数

作者: xgnb | 来源:发表于2019-03-10 21:42 被阅读0次

魔法函数用于增强我们定义的类对象。
在类对象中,以双下滑线开头以及结尾的成为魔法函数,比如常见的__init__。
我们看一下场景。

quetion:
定义一个名为Company的公式类,构造函数定义一个员工列表,遍历这个员工列表,打印出员工的名字

class Company:
    def __init__(self, employee_list):
        self.employee = employee_list
# 如果我想遍历公司的员工,通常这样做
company = Company(['tom', 'bob', 'jane'])
employee = company.employee
for em in employee:
    print(em)

当我们为这个对象定义一个,名为__getitem__方法的时候,如下定义时:

class Company:
    def __init__(self, employee_list):
        self.employee = employee_list

    def __getitem__(self, item):
        return self.employee[item]

company = Company(['tom', 'bob', 'jane'])

for i in company:
    print(i)

一样可以达到如上的操作!~
补充:
当我们定义了这个__getitem__的魔法方法时(这个Company类就有了可迭代的功能,是一个可迭代类型),这边用for循环在这里面取得的i为__getitem__所定义返回的结果(第一次取得tom,第二次取得bob),__getitem__中的item参数实则为做循环时的index在python内部会不停根据这个定义的方法根据索引返回出这个employee的索引结果。

总结:

可以看到了魔法函数的强大,魔法函数可以增强以及丰富我们类的功能,

注意
魔法函数在python内部已经规定好,我们无法自己定义一个,只能根据不同的魔法函数的设计规则,去重写规定我们类对象的功能。

相关文章

  • 2-1 什么是魔法函数

    魔法函数用于增强我们定义的类对象。在类对象中,以双下滑线开头以及结尾的成为魔法函数,比如常见的__init__。我...

  • python魔法函数

    什么是魔法函数? 1)在python中以双下滑线开头并且以双下滑线结尾的函数 2)魔法函数可以随意定义某个类...

  • 第二章 魔法函数

    一. 什么是魔法函数 二. python的数据模型以及数据模型对python的影响(数据模型也叫魔法函数) 三. ...

  • python——魔法函数

    python中常见的内置类型 什么是魔法函数? python的魔法函数总被双下划线包围,它们可以给你的类增加特殊的...

  • Python进阶2

    魔法函数 引言 魔法函数是Python中定义的,以__开头,__结尾,形如__func__()的函数,一般使用已经...

  • jupyter-lab魔法函数

    作者:Arno审稿:童蒙编辑:amethyst 魔法函数介绍 所谓jupyter-lab的魔法函数, 实际上是ju...

  • 第三章 过程大于结果总结

    一 函数 1.1函数是什么 ①集合的对应关系 ②数据的“魔法盒子” ③语句的封装 1.2.1定义函数 制作函数的过...

  • PHP性能优化02

    PHP语言级性能优化 优化点:尽可能减少使用魔法函数 情况描述:PHP提供的魔法函数,性能不佳 为什么性能低? 为...

  • Jupyter Notebook魔法函数

    魔法函数 使用魔法函数可以简单的实现一些单纯python要很麻烦才能实现的功能。 一些常用魔法函数的示例: 注意这...

  • Python语法学习三之函数

    一、简单函数定义和调用 二、函数参数 2-1、缺省参数 调用函数时,缺省参数的值如果没有传入,则被认为是默认值。注...

网友评论

      本文标题:2-1 什么是魔法函数

      本文链接:https://www.haomeiwen.com/subject/qxfbcqtx.html