帝国王子 发表于 2023-11-10 10:41:58

python @符号

python @符号的使用归纳整理一下
一. 函数
python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志、性能测试、事务处理等等。
创建函数修饰符的规则:
(1)修饰符是一个函数
(2)修饰符取被修饰函数为参数
(3)修饰符返回一个新函数
(4)修饰符维护被维护函数的签名
我的理解就是把当前函数当做参数传入到修饰函数里执行,然后再修饰函数里做一些操作。
def funcB(funa):
    print("funcb")
    #fun()
    return "test"

@funcB
def funA():
    print("funA")


print(funA)

/*
输出funcb   test
当把#fun() 修改为fun()的时候则为
funcbfuncA test二, @staticmethod 和@classmethod
@staticmethod 相当于C++里的静态函数
@classmethod 相当于C++里常用的一个类调用Create来创建自身的用法。
应用场景可以参考这个链接
Python 中的 classmethod 和 staticmethod 有什么具体用途?
三。@property
看这个文章就是了,这个很好理解,就是属性,没啥特别的
Zhihao:python @property的介绍与使用

wushuhong 发表于 2023-11-10 10:42:14

博主,好像有点问题诶,我的编译器说识别不了fun的

汽水猫 发表于 2023-11-10 10:42:41

把funa改成fun试试

之海 发表于 2023-11-10 10:42:50

喜欢你的简洁

宾利雅致 发表于 2023-11-10 10:43:50

装饰器等价于这个:funA=funcB(funA)

zyn373 发表于 2023-11-10 10:44:44

所以一直调用funcC(funA)

荷尔蒙暴民 发表于 2023-11-10 10:45:34

第一个例子取消#后会报错
页: [1]
查看完整版本: python @符号