二刷python:函数作用域与名称空间

#函数作用域与名称空间

##初识函数对象
函数非常非常非常重要.但是不要过于的去害怕他.弄清楚本质就行

函数 --> 更高级一点的数据容器,里面存的不是单纯数据,而是代码!!! 
	一个容器能干嘛,函数也可以用来干嘛

函数对象 --> 把函数当成一个普通数据容器来使用.

1.函数可以被引用 -- 可以用函数来赋值!
	数据名 = 函数名 # 把函数复制一份
	变量名 = 函数名() # 把函数返回值赋值给变量
2.函数可以作为元素,放到数据容器里 -- 函数可以放到列表,集合,元组,字典中
3.函数可以作为一个参数,传给别的函数
4.函数可以作为返回值来使用

##名称空间
名称空间 --> 用来存名字的地方
变量名,函数名,模块名

程序中有专门的内存区域来存储对应的数据(堆栈):
	名称空间 --> 存储变量名,函数名,模块名
	内存数据 --> 变量值,函数代码,模块里的代码

名称空间,一共分为三层:

1.内建名称空间(存内置函数)
	生命周期: 随着python程序启动而产生,在程序关闭时回收.清除所有数据
	加载顺序: 最先被加载出来的
	存放对象: print,input type sum这些内置函数

2.全局名称空间(自己定义在python外层的所有名字)
	生命周期: 随着python程序启动而产生,在程序关闭时回收.清除所有数据
	加载顺序: 第二个加载的
	存放对象: 用户自己定义的变量名,函数名
	
3.局部名称空间(在函数里定义的名字)
	生命周期: 随着函数的调用而生成,结束调用后关闭.
	加载顺序: 在调用时才会被加载
	存放对象: 在函数里定义的变量名,函数名,形参

三国版:
	曹操
	内建名称空间: 曹操的兄弟,家人,一开始打天下的时候就带着的 --> 曹仁 曹洪 夏侯惇 夏侯渊
	全局名称空间: 曹老板打天下过程中收复的文臣武将 --> 郭嘉 荀彧 贾诩 张辽 徐晃 典韦
	局部名称空间: 曹老板分封的太守(市长)自己的小弟 --> 太守的小弟会听太守的话,但不一定听曹老板的话

总结:
	一个程序里的数据都是会存储在对应的位置
	名称空间 --> 用来存储名字的地方!!!
	堆栈

##作用域
作用域: 一个数据能够被使用的范围
wifi: 一个wifi能被使用的范围

全局作用域:	整个程序里都可以使用
	(内建/全局名称空间)
相当于没有密码的wifi.大家都可以连

局部作用域: 只有局部位置才能使用(函数内)
	(局部名称空间)
相当于有密码的wifi,只有知道密码的人才能使用

提权操作 --> 让一个数据从局部变为全局
global = 全局

def 函数名():
	global 变量名
	变量名 = 值
函数名() # 需要先调用函数,才能使用里面的变量
def fun():
	global a 
	a = 666
fun()
print(a)

降权操作 --> 让一个数据变为私有化
nonlocal --> 私有化
def fun1():
    a = 520 # 这里的a.从函数的角度来说.是全局变量
    def fun2():
        nonlocal a # 这样子就是私有化.把a抢了过来.归自己所有
        a = 666
    fun2()
    print(a)
fun1()

##匿名函数 lambda函数
http://c.biancheng.net/view/2262.html

给懒人用的 --> 如果你要写一个函数,但是不想给它取名字再.那就可以用匿名函数来写
	定义了一个函数,但是没有名字

def add(a,b):
	return a+b
print(add(70,52))

匿名写法:
add = lambda a,b:a+b	

语法格式
lambda 变量:操作
lambda a:print(a)
b = lambda a:print(a)
b('嘿嘿嘿')

##作业:
第二周练习
后续学的知识点因为性质问题.不好布置作业.基本没作业.最多出周练习

##聊天扯淡
爬虫 --> 模拟用户向服务器发送请求

1.找到学霸 --> 找到要爬取的网站
2.向学霸发送请求 --> 向网站服务器发送请求(有的网站不会给你数据,或者要权限才能给你数据)
3.拿到作业 --> 拿到数据
4.开抄!!! --> 保存数据

有难度是正常的.从流程控制开始. 难度就是上升
不懂的及时多看录播笔记 + 多交流多问人.
最简单粗暴的学习方式就是多敲多练.

这个班 --> 语法基础班24号结课
我只带语法基础 + web前端 + Linux
下个班谁带/什么时候开. 待定,等结课后问班主任

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值