初学Python-day10 函数2
函数
1.函数也是一种数据
函数也是一种数据,可以使用变量保存
回调函数(参数的值还是一个函数)
实例:
def test():
print('hello world') def test1(a):
print(a)
a() test1(test)
运行结果:
<function test at 0x0000021835700160>
hello world Process finished with exit code 0
2.变量的作用域
-闭包
概念:又称为闭包函数或闭合函数,和函数嵌套类似,不同之处在于闭包函数中返回的不是一个值,而是一个函数。
优点:避免污染全局环境,这样就可以在函数体外使用函数体中定义的变量
缺点:数据会长期驻留在内存中,内存浪费
实例:
name = 'a'
def fun01():
name = 'b'
print('执行fun01')
def fun02():
name = 'c' # 函数体内的变量
print('执行fun02', name)
return fun02 fun01()() 运行结果: 执行fun01
执行fun02 c Process finished with exit code 0
-作用域
概念:Python中程序的变量并不是在哪个位置都能够访问到的,访问权限决定于这个变量在哪里定义。
作用域的划分:
1.局部作用域 L
2.闭包函数外到函数中E
3.全局作用域 G
4.内建作用域 B
变量的查找规则: L > E > G > B
也就是在使用变量的时候,优先局部查找,如果查不到,则到闭包函数外函数中,再去全局作用域,再去内建作用域。
注意:Python中只有模块(module)、类(class)、函数(def、lambda)才会引入新的作用域;其他的代码块,如if/if..else/if..elif..else/try..except/for/while 不会引入新的作用域,也就是说这些内部定义的语句,外部也可以访问。
-作用域的体现
在函数外部定义的变量称为全局变量,在函数内部定义的变量称为局部变量。
函数内部可以获取全局变量,函数外部无法获取局部变量。
初学Python-day10 函数2的更多相关文章
- python day10 函数(第二篇)
		
2019.4.10 S21 day10笔记总结 一.内容回顾 1.面试题相关: 1.py2和py3的区别 2.运算符的计算 :3 or 9 and 8 3.字符串的反转 4.is和==的区别 5.v1 ...
 - Python—day10 函数的参数分类
		
一.实参与形参 1.形参:定义函数,在括号内声明的变量名,用来接受外界传来的值 def fn(形参们): pass def fn(a,b,c):# 形参就是考虑实参的值, ...
 - 跟着太白老师学python day10  函数嵌套, global , nonlocal
		
函数嵌套: 第一种嵌套方法 def func(): count = 123 def inner(): print(count) inner() func() 第二种嵌套方法 count = 123 d ...
 - 初学 Python(十三)——匿名函数
		
初学 Python(十三)--匿名函数 初学 Python,主要整理一些学习到的知识点,这次是匿名函数. # -*- coding:utf-8 -*- #关键字lambda定义的函数都是匿名函数 #做 ...
 - 初学 Python(十二)——高阶函数
		
初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...
 - 初学Python(九)——函数
		
初学Python(九)--函数 初学Python,主要整理一些学习到的知识点,这次是函数. 函数定义: # -*- coding:utf-8 -*- #函数的定义 def my_function(x) ...
 - Python中函数、类、模块和包的调用
		
初学python阶段,大多数人对函数.类.模块和包的调用都搞得不是很清楚,这篇随笔就简单的进行说明. (1)函数 当函数定义好之后,可以直接调用. 比如:def summ(add1,add2),那么 ...
 - 初学 Python(十五)——装饰器
		
初学 Python(十五)--装饰器 初学 Python,主要整理一些学习到的知识点,这次是生成器. #-*- coding:utf-8 -*- import functools def curren ...
 - 初学 Python(十四)——生成器
		
初学 Python(十四)--生成器 初学 Python,主要整理一些学习到的知识点,这次是生成器. # -*- coding:utf-8 -*- ''''' 生成式的作用: 减少内存占有,不用一次性 ...
 - 初学python之感悟
		
python的强大有目共睹,现将初学python,觉得其中比较重要的知识罗列如下: 类似于数组的东西:列表.元组.集合.字符串以及字典,这几个东西充分体现了python的强大和逆天. 列表: x=[1 ...
 
随机推荐
- (九)羽夏看C语言——C++番外篇
			
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正. 如有好的建议,欢迎反馈.码字不易,如果本篇文章 ...
 - Python - 面向对象编程 - __del__() 析构方法
			
del 语句 Python 提供了 del 语句用于删除不再使用的变量 语法 del 表达式 删除变量的栗子 var = "hello" del var print(var) # ...
 - Activiti 学习(一)—— Activiti 基础
			
工作流概述 在一个公司中,每一项业务的开始和结束,都可以理解为一个工作流,例如,公司的费用报销的基本流程如下: 如图所示的工作流:员工先提出费用报销申请,提交该申请给部门领导,部门领导审批后,再提交给 ...
 - PHP中DirectIO直操作文件扩展的使用
			
关于 PHP 的文件操作,我们也将是通过一系列的文章来进行学习.今天我们先学习的是一个很少人使用过,甚至很多人根本不知道的扩展,它与我们日常的文件操作有些许的不同.不过这些差别并不是我们肉眼所能直观看 ...
 - win8 连接到OneDrive时出现问题-感叹号
			
显示最后更新时间是1970年... 还有感叹号,没法同步 解决办法: 管理员运行cmd命令: 输入"netsh int ip reset c: esetlog.txt",按下回车键 ...
 - linux错误: locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
			
命令 locate my.cnf 产生以上错误 此时执行 # updatedb 更新下数据库即可
 - Batch Size对神经网络训练的影响
			
 前言 这篇文章非常全面细致地介绍了Batch Size的相关问题.结合一些理论知识,通过大量实验,文章探讨了Batch Size的大小对模型性能的影响.如何影响以及如何缩小影响等有关内容. 本文来 ...
 - 配置阿里云gradle
			
build.gradle buildscript { ext { springBootVersion = '1.5.15.BUILD-SNAPSHOT' } repositories { // mav ...
 - contos 安装 nginx
			
参考链接https://blog.csdn.net/u011159417/article/details/80081992 https://blog.csdn.net/wangxy_job/artic ...
 - 使用php函数 json_encode ,数据存入mysql
			
$data = json_encode($array); // 过滤 $data = addslashes($data); // 插入数据库 $db->insert($table_name,ar ...