美文网首页
【函数学习】修饰符@装饰器与classmethod修饰符

【函数学习】修饰符@装饰器与classmethod修饰符

作者: 风萧萧兮水易寒 | 来源:发表于2020-02-23 15:03 被阅读0次

一、修饰符

   python修饰符 ‘@’引用已有的函数,对下面的函数进行修饰。引用函数必须放在修饰函数的上面,引用函数的返回值,返回给被修饰的函数

例如:先定义一个函数    def funA(fn):再定义一个被修饰的函数

    def funA(fn):.......

    @funA

    def funB():......

在这里,funA是引用的函数,funB是被修饰的函数 。@修饰符的功能就是把funB当做参数传递给funA,然后把funA的返回值返回到funB

 @funA 相当于执行 funA(funB)。

注:修饰符“@”后面必须是之前定义的某一个函数;

每个函数只能有一个修饰符,大于等于两个则不可以。

参考与详细

https://www.jianshu.com/p/590a2fac611f

https://www.cnblogs.com/liangxiyang/p/11200476.html

关于装饰器的基础用法官方文档 https://www.runoob.com/w3cnote/python-func-decorators.html解释得非常清楚

二、classmethod 修饰符

官方解释:classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。

解释理解:一般创建类(里面包含N个方法)后,需要使用里面的方法实际某种特定功能,需要实例化类,然后再通过实例后的类访问它里面的方法。如

定义一个类及下面的两个方法

class Student(object):

    def __init__()

    def fun1

    def fun2

如果要调用类中的方法的话,要点定义一个类实例

    a=Student()

再通过实例a来调用方法函数

    a.fun1

    a.fun2

而添加classmethod修饰符后,对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,就可以来调用类的属性,类的方法,

class Student(object):

    def __init__()

    @classmethod

    def fun1

    @classmethod

    def fun2

可以直接通过Student.fun1(),调用函数

相当于将其提取出来作为了一个函数

参考与详细

   官方文档  https://www.runoob.com/python/python-func-classmethod.html

    样       例  https://www.cnblogs.com/SusanXX/p/8400302.html

感谢!

相关文章

网友评论

      本文标题:【函数学习】修饰符@装饰器与classmethod修饰符

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