首页 > 编程语言 > 详细

Python基础(四)

时间:2018-07-26 23:07:11      阅读:317      评论:0      收藏:0      [点我收藏+]

一 . 装饰器(很重要的一个内容)

定义:  本质是函数,(装饰其他函数)就是为其他函数添加其他功能

注意事项:a.不能修改被装饰的函数的源代码,

                  b. 不能修改被装饰的函数的调用方式。

 补充:

         a.函数就是“变量”,把函数体赋给了函数名。

         b. 高阶函数+嵌套函数>>>>装饰器

         c.高阶函数:把一个函数名当做实参传给另一个函数(不修改被装饰的函数的源代码);

                              返回值中包含函数名(不修改被装饰的函数的调用方式)。

#一个函数名当做实参传给另一个函数
import
time def bar(): time.sleep(3) print(in the bar) def test1(func): start_time = time.time() func() #run bar stop_time = time.time() print("the func run time is %s" % (stop_time - start_time) ) #运行时间等于结束时间减去开始时间 test1(bar)

注:不大理解这个(哈哈哈)

# 返回值中包含函数名
import
time def bar(): time.sleep(3) print(in the bar) def test2(func): print(func) return func #print(test2(bar)) bar = test2(bar) bar()

 

 

 d.嵌套函数

函数的嵌套,在函数的内部再申明一个函数,而不是去调用
def foo():
    print("in the foo")
    def bar():
        print("in tne bar")    #函数的嵌套,在函数的内部再申明一个函数,而不是去调用

    bar()
foo()

 


#局部变量与全局变量的访问次序:
x = 0 def grandpa(): x = 1 def dad(): x=2 def son(): x=3 print(x) son() dad() grandpa()
运行结果:3


 


技术分享图片
 1 import time
 2 user,passwd = "xiaolaizi","abc123"
 3 #装饰器
 4 def auth(func):
 5     def wrapper(*args,**kwargs):
 6         username = input ("Username:").strip()   #strip去空格
 7         password = input("Password:").strip()
 8 
 9         if user == username and passwd == password:
10             print("\033[32;1mUser has passed authentication\033[0m")
11             res = func(*args,**kwargs)
12             print(20**)
13             return res
14         else:
15             exit("\033[31;1mUser has not passed authentication\033[0m")
16     return wrapper
17 def index():           #定义一个首页
18     print("welcome to index page")
19 @auth   #本地验证@auth(auth_type = "local")
20 def home():        #定义一个登陆页面
21     print("welcome to home page")
22     return "from home"
23 @auth   #远程验证@auth(auth_type = "ldap")
24 def bbs():        #定义一个论坛区页面
25     print("welcome to bbs page")
26 
27 index()
28 print(home())
29 #home()
30 bbs()
View Code

 

 

 

 

        

Python基础(四)

原文:https://www.cnblogs.com/bltstop/p/9372952.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!