有个小问题:原有功能(func1)在100个地方被调用,使用闭包加入新功能(func2),要在所有调用func1的地方替换成func2?
# coding=utf-8 def addFunc(): print('我是新增加的功能') def funcOut(func): def funcIn(x, y): addFunc() test(x, y) return funcIn @funcOut def test(a, b): print('a=%g b=%g' % (a, b)) test(1, 2)
运行结果:
老师您好 ,我比对了一下和视频中的代码 没区别,但是运行结果成了函数的递归调用了吧 一直在循环,是哪里有问题了呢
谢谢老师
这个通用是可以支持3个和3个以上吗,我看举例是0-1-2的
老师,您好。想问一下,self.addFunc() 不加上self,会出现如图错误,想知道是哪里给的 1个参数?
''' 类装饰器(无需使用闭包的装饰器,需要用到类的装饰器) 也是在 不修改源码的前提下,增添新的功能 ''' class AAA(): def __init__(self, func): #print("我是AAA.init()") self.__func = func #为解决 TypeError: 'AAA' object is not callable def __call__(self, *args, **kwargs): self.addFunc() self.__func() def addFunc(): print("用户体验权限") print("日志处理系统") @AAA #TypeError:__ init__ () takes 1 positional argument but 2 were given #test1 = AAA(test1) def test1(): print("我是功能1") test1()
老师,您好。 个人感觉,type动态创建类的方法,可以方便产生许多相同的对象。
那除此之外,这个方法还有什么便利性或优点、实际用处呀?
老师,您好。 ①类装饰器的实际应用有哪些嘞? (除了给源代码添加功能的方面)
②在给源代码添加功能方面,个人感觉使用闭包的装饰器比类装饰器 更方便一些。 对您怎么看囊?
老师打扰一下,课程中提到的两个参数是哪两个参数,我只看到一个参数(test1)另一个是哪个?
[a-z] 这个中间的-是表示什么意思,我看视频里没说这个语法,直接就写了,具体的说明文档有吗
如果要在pattern中表示 '(' '(' '.' 等这些特殊字符要怎么表示,有 'r' 和没有 'r' 的分别是怎么样?
pattern = "\d*" 匹配得到"123456" 这个字符串可以不加 r ,
但是pattern = '.*\ber' , 不加 r 的话匹配'123 er' 返回none
s 和 pattern 两个都是字符串, 为啥一个是转义,另一个却不是,有点难理解
如果要匹配 大写字母 或 小写字母 或 数字 或 -(减号) ,要怎么写呢
pattern = r".*or\b" s = "123abor" v = re.match(pattern, s) print(v)
123abor 不算单词,为啥结果还是能匹配出来呢?
老师,您好。想请教一下您,视频中出现的文档,在哪里能找到?
老师,您好。我想请教您一下。 静态方法 和 类方法 这两种方法的其他区别 和 各自所发挥的实际用处 是什么?
(目前只知道 前者不能填加 cls self 参数 ,后者可以)
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2026百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637