周口建设局网站,无极电影网怒火重案,优化课程设置,中国专业摄影网老王#xff1a;算了#xff0c;估计你也想不出来。。。学过嵌套函数没有#xff1f; 你#xff1a;yes#xff0c;然后呢#xff1f; 老王#xff1a;想实现一开始你写的america login(america)不触发你函数的执行#xff0c;只需要在这个login里面再定义一层函数算了估计你也想不出来。。。学过嵌套函数没有 你yes然后呢 老王想实现一开始你写的america login(america)不触发你函数的执行只需要在这个login里面再定义一层函数第一次调用america login(america) 用到外层login 这个login虽然会执行但不会触发认证了因为认证的所有代码被封装在login里层的新定义的函数里了login只返回里层函数的内存地址再执行america()时就会调用里层函数拉。。。 你。。。。。。什么 什么个意思我懵逼了。。。 老王还是给你看代码吧。。 # -*-coding:utf-8-*-user_status Fales #用户登录了就把这个改成Truedef login(func) def inner() _username alex #假装这是DB里存的用户信息 _password abc!23 #假装这是DB里存的用户信息 global user_status if user_status False: username input(user:) password input(password) if username _username and password _password: print(welcome login...) user_status True else: print(wrong username or password!) else: print(用户已登陆验证通过。。。) if user_status: func() return inner def home(): print(----首页----)def america(): login() #执行前加上验证 print(----欧美专区----)def japan(): print(----日韩专区----)def henan(): login() #执行前加上验证 print(----河南专区----) henan login(henan)print(henan) 执行结果 function login.locals.inner at 0x101ea10d0 此时你仔细着了老王写的代码感觉老王真不是一般人呀连这种奇淫巧技都能想出来。。。心中默默感谢上天赐你一个大牛邻居。 你老王呀你这个姿势很nb呀你独创的 此时你媳妇噗呲笑出声来你也不知道她笑个球。。。 老王呵呵这不是我独创的呀当然这是开发中一个常用的玩法叫语法糖官方名称“装饰器”其实上面的写法还可以更简单可以把下面代码去掉。 america login(america) #你在这里相当于把america这个函数替换了 只在你要装饰的函数上面加上下面代码 login def america(): #login() #执行前面加上验证 print(----欧美专区----) 转载于:https://www.cnblogs.com/kingforn/p/10916789.html