Python 基础核心语法(第十节)

函数作用域与名称空间

1.函数对象:

函数是一个高级的数据容器,就是一个特殊的变量。

特性:

1.函数可以进行赋值

2.函数可以作为一个数据元素,可以放到列表、字典、集合里面。

3.可以作为一个参数,传到另一个函数里面。

例子:

a=print

a("hello world")

#函数可以作为一个函数。

例如:

def a():

      print("a")

      return 0

b=[1,2,3,a()]

print(b)

def a():

      print("a")

b=[1,2,3,a()]

print(b)

———————————————————————————————————————————

2.名称空间:

定义:就是储存名字的地方。

名称空间——>储存变量名的地方。

内部数据——>赋值后的数值。

名称空间结构:

2.1.内建名称空间(储存内置函数和关键字)

生命周期:当python程序启动,就会直接自动保存。

关闭python程序的时候就会自动回收,清除数据。

加载顺序:会最先加载出来。

存放对象:内置函数。

2.2.全局名称空间(全局变量名)

生命周期:当python程序启动,就会直接自动保存,结束调用时直接销毁。

加载顺序:在被调用时才加载出来。

存放的对象:python外层写的代码,定义函数名,变量名。

———————————————————————————————————————————

3.局部命名空间:

生命周期:当python的函数调用的时候,就保存。当函数运行return的时候,直接销毁。

加载顺序:在调用时才会被加载。

存放对象:函数里面的变量名,参数。

例如:全局变量。

A="全局变量"

def info():

      B="局部变量"

      print(A,B)

info()

4.作用域:使用的范围,一个数据的使用范围。

如,WiFi:一个WiFi的使用范围。

4.1全局作用域:

作用范围:整个程序可以使用。

作用对象:内置名称空间。

类比:公共WiFi(不用输入密码)

4.2局部作用域:

作用范围:只有在函数内部才能使用。

作用对象:局部命名空间。

例如:

A="校园网WiFi"

def info():

      B="手机热点"

      print(A,B)

def info1():

      print(f"我要用{A}")

      print(f"我要用{B}")

info 1()

所以啊,别人没给你热点密码,是连不了的,所以也输出不了的。

5.global(全局变量)

其实:我们的局部作用和全局作用是可以转换的。

类比:你把密码删除,变成共享WiFi给人使用。

格式:def 函数名():

                global 变量名

                操作变量名

A="校园网WiFi"

def info():

      global B

B="手机热点"

print(f"我要用{A}")

print(f"我要用{B}")

info()

print(A,B)

看,别人的热点WiFi连接上了,嘿嘿,尽情使用吧。

6.nonlocal(局部变量)

nonlocal——>声明的变量,不是全局变量,也不是局部变量。外部嵌套函数内部的变量。

类似:把共享WiFi偷偷加上密码,只有有密码的人才能使用。

格式:def 函数名():

                nonlocal 变量名

                操作变量名

函数名()

def main(): #只是一个数字

      a=1

     

      def A():

            nonlocal a

            a=2

            print(a)

      A()

main()

只能在嵌套函使用:局部变量会在函数运行到return直接销毁        

nonlocal——  在第一层函数的数值如果要然第二层函数进行修改值,

                       而目其他的第二层函数使用的改变后的数值就需要用到nonlocal        

nonlocal ->如果你想用函数内部去进行修改全局变量,就是要用nonloca]进行定义才能修改数值。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中国第一深情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值