python—day10

本文隶属于分类

编程语言

广告推荐

技术交流学习或者有任何问题欢迎加群

编程技术交流群 : 154514123 爱上编程      Java技术交流群 : 6128790  Java

标签:one   pan   名称   img   out   ()   gist   bar   turn   

    函数—day02:

1、函数的嵌套调用,在函数内又调用了其他函数;

1 def foo():
2     print(my name is kermit!)
3 
4 def goo():
5     res = foo()
6     print(my name is jack)
7 
8 goo()

2、函数的嵌套定义,在函数内又定义了其他函数;

技术分享图片
1 def func():
2     print(my name is kermit)
3     x = 1
4     def func2():
5         print(my love)
6         y = 2
7     func2()
8 func()
View Code
技术分享图片
1 def f1():
2     print(f1...)
3     def f2():
4         print(f2...)
5         def f3():
6             print(f3...)
7         f3()
8     f2()
9 f1()
View Code

3、一:名称空间:存放名字与绑定关系的地方

1 kermit = 123
2 def kermit():
3     pass

   二:名称空间分为三类:

  1.内置名称空间:存放在python解释器自带的名字,在解释器启动时生效,关闭时终断;

  2.全局名称空间:文件级别得名字,在文件执行时生效,文件结束时失效;

技术分享图片
1 x = 1
2 def f1():
3     def f2():
4         print(x)
5     f2()
6 f1()
View Code

  3.局部名称空间:放在函数内定义的名字(函数的参数以及函数的名字都存放于局部名称空间),

  在函数被调用的时候生效,函数结束后失效;

1 def func(x):
2     y = 2
3 
4 func(1)

加载顺序:内置名称空间==》全局名称空间==》局部名称空间

查找名字:局部名称空间==》全局名称空间==》内置名称空间

 

 1 len =kermit
 2 def f1():
 3     # len = 100
 4     def f2():
 5         # len=3
 6         def f3():
 7             print(len)
 8         f3()
 9     f2()
10 f1()
三:作用域
全局作用域:包含的是内置名称空间与全局名称空间的名字,
特点
1在任何位置都能够访问的到
2该范围内的名字会伴随程序整个生命周期

局部作用域:包含的是局部名称空间的名字
特点:
1、只能在函数内使用
2、调用函数时生效,调用结束失效

函数对象:函数对象在python中是第一类对象:
1、可以被调用:
1 x = 1
2 y = x
3 def bar():
4     print(kermit jam)
5 
6 f = bar
7 f()

2、可以当作参数:
 1 x = 1
 2 def func(a):
 3     print(a)
 4 func(x)
 5 
 6 def bar():
 7     print(my name is kermit)
 8 def wrapper(func):
 9     func()
10 
11 wrapper(bar)

 

3、可以当作函数中的返回值
1 def bar():
2     print(from bar)
3 
4 def foo(func):
5     return func
6 
7 f = foo(bar)
8 f()

4、可以当作容器中的元素
技术分享图片
1 def get():
2     print(from get)
3 
4 def put():
5     print(from put)
6 
7 l = [get,put]
8 l[0]()
9 l[1]()
View Code

技术分享图片
 1 def login():
 2     print(login....)
 3 
 4 def regist():
 5     print(regist...)
 6 
 7 def check():
 8     print(check....)
 9 
10 def pay():
11     print(pay......)
12 
13 dic = {
14     1:login,
15     2:regist,
16     3:check,
17     4:pay,
18 }
19 
20 def interactive():
21     while True:
22         print(‘‘‘23         1 登陆
24         2 注册
25         3 查看
26         4 支付
27 
28         ‘‘‘)
29         choise = input(choise:>>:).strip()
30         if choise in dic:
31             dic[choise]()
32 
33         else:
34             print(输入非法!)
35 
36 interactive()
View Code

 

 5、闭包函数:

  闭:指函数定义在函数内部的函数

  作用域关系:在函数定义阶段就规定死了,与调用的位置无关


1 def outter():
2     x = 1
3     def inner():
4         print(kermit jam,x)
5     inner()
6 x=1111
7 a = outter
8 a()

 闭包函数:

1、定义在函数内部的函数

2、并且该函数包含对外部函数的引用,该函数就叫做闭包函数


1 def outter():
2     name = kermit
3     def inner():
4         print(my name is %s %name)
5     return inner
6 
7 f = outter()
8 f()

 



 

python—day10

标签:one   pan   名称   img   out   ()   gist   bar   turn   

原文:https://www.cnblogs.com/kermitjam/p/8665575.html

技术交流学习或者有任何问题欢迎加群

编程技术交流群 : 154514123 爱上编程      Java技术交流群 : 6128790  Java

广告推荐

讨论区