python函数名的作用_python之函数的对象、函数嵌套,名称空间与作用

一.函数的对象

函数是第一类对象的含义是函数可以被当做数据处理

1.引用

2.当作参数传给一个函数

3.可以当作函数的返回值

4.可以当作容器类型的元素

def pay():

print(‘支付。。’)

def withdraw():

print(‘取款。。’)

def transfer():

print(‘转账。。’)

defcheck_balance():

print(‘检查余额’)

def shopping():

print(‘购物。。’)

func_dic={  '1':pay,

'2':withdraw,

'3':transfer,

'4':check_balance,

'5':shopping

}

while True:

msg="""

1.支付

2.取款

3.转账

4.查看余额

5.购物

6.退出“”

print(msg)

choice=input(‘>>:’).strip

if choice == ‘5’:break

if choice not in func_dic:

print(‘输入的指令不存在’)

continue

func_dic[choice]()

二.函数嵌套

嵌套定义:

def f1():

def f2():

print('from f2')

f2()

f1()

嵌套调用:

# def max2(x,y):

#     if x > y:

#         return x

#     else:

#         return y

#

# def max4(a,b,c,d):

#     res1=max2(a,b)

#     res2=max2(res1,c)

#     res3=max2(res2,d)

#     return res3

#

# print(max4(1,2,3,4))

三.名称空间与作用域

1.名称空间namespaces

存放名字与值绑定关系的地方

2.名称空间分为三大类

内置名称空间:

作用:存放python解释器自带的名字

生命周期:

在解释器启动时生效,在解释器关闭时失效

全局名称空间:

作用:除了内置的与局部的名字外,其余都是全局名字

生命周期:

在文件执行时生效,在文件执行完毕失效

例如:x,func,y,l,都是

x=1

def func():

l=[1,2]

局部名称空间:

作用:用于存放函数调用期间函数体产生的名字

生命周期:

在文件执行过程

调用某个函数才会临时生效,在函数执行完毕后失效

三种名称空间的加载顺序是:

内置-》全局-》局部

名称空间就是用来存放名字与值的绑定关系,所以但凡要查找名字,一定是从三者之一找到,查找顺序

从当前所在是位置到这查找,如果当前所在的位置是局部名称空间

则查找顺序是:

局部-》全局-》内置

不能跨函数找对象

3.作用域:

域指的是区域、范围,作用域即作用的范围

全局作用范围,全局作用域(内置名称空间与全局名称空间)

全局有效,全局存活

局部作用范围,局部作用域(局部名称空间)

局部有效,临时存活

作用域关系是在函数定义阶段就固定死了,但凡调用函数都需要跑到定义阶段去找作用域关系

当前函数从里往外一层一层找,找不到就找全局

# 在局部如果想要修改全局的可变类型,不需要借助任何声明,可以直接修改

# 在局部如果想要修改全局的不可变类型,需要借助global声明,声明为全局的变量就可以直接修改了

nonlocal从当前位置就近修改局部内的的值

# x=1

# def f1():

#     # x=33333

#     def f2():

#         # x=22222222

#         def f3():

#             nonlocal x

#             x=20000000000

#         f3()

#         print(x)

#     f2()

#

# f1()

# print(x)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值