码迷,mamicode.com
首页 > 编程语言 > 详细

python第十一天

时间:2019-04-01 15:45:25      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:参数传递   就是   put   名称空间   类型   nbsp   解决   解释   同名   

函数总结:

  def func(a, b):
  print(a, b)
  return a + b

  四个组成部分:

  函数名:调用函数的依据

  函数体:执行函数逻辑的

  参数列表:为函数提供内部资源

  返回值:将函数执行结果返回给外界

 

  返回值:1、空返回(没有return或空return)  2、一键返回  3、多值返回:装有多个值的元组

  参数列表:

  实参:外界调用函数传入的参数,拥有实际值

  形参:函数定义时,()中定于用来接收实参的值

  关系:形参是对实参值得拷贝

  

  实参分类:

  位置实参:按位置对应传递参数,必须出现在关键字实参之前,

  关键字实参:不需要按位置对应传参,用参数名标注为谁传参,必须出现在位置实参值后

  位置实参:只能给位置形参传参(位置形参,默认形参,可变长位置形参)

  关键字实参:可以任意形参传参

  

  出现顺序:

  位置形参》默认形参》可变长位置形参》关键字形参》可变长关键字形参

 

 

函数对象

  定义:函数名就是存放了函数的内存地址,存放了内存地址的变量都是对象,即函数名就是函数对象,

  函数对象的应用:

  1、可以直接被引用: fn = cp_fn

  2、可以当做函数参数传递:computed(cp_fn,100,20)

  3、可以作为函数的返回值:get_cp_fn(cmd):return add

  4、可以作为容器类型的元素: 函数对应关系中的值

名称空间

  定义:存放名字与内存空间地址对应关系的容器

  作用:解决有名字有限,导致名字重复发送冲突的问题

  三种名称空间:

  Built-in:内置名称空间,系统级, 一个,随解释器执行而产生,解释器停止而销毁。

  Global:全局名称空间,文件级,多个,随着所属文件加载而生产,文件运行完毕而销毁。

  Local:局部名称空间,函数级,多个,对所属函数执行而产生,函数执行完毕而销毁。

注意:

del 名字 :可以移除查找最近的名字与内存空间地址的对应关系

加载顺序:Built-in 》Global 》Local

  global关键词: 

def fn()
global num
num = 20
print(num)

# global关键词可以将local的名字提升为Global的名字

#一个文件中的Global名字就是一个,所以函数内部外部使用的名字都是一个

 

函数的嵌套

# 将函数直接定义到另一个函数内部,就可以使用外部函数中的名字

def outer():
num = 20
def inner():
print(num) # inner就可以直接使用outer中的名字
inner()
outer()

作用域

  定义:名字起作用的范围

  作用:解决同名字可以共存的问题

四种作用域:

  Built-in:内置作用域,所有文件所有函数

  Global:全局作用域,当前文件所有函数

  Enclosing:嵌套作用域,当前函数与当前函数的内部函数

  Local:局部作用域,当前函数

注意:不用作用域之前的名字不冲突,以达到名字的重用

查找顺序:Local》Enclosing》Global》Built-in

 

闭包(closure)

定义:被包裹的函数,称之为闭包

完整闭包结:1、将函数进行封包处理;2、提升函数名的作用域,将内部函数队形作为外部函数的返回值

python第十一天

标签:参数传递   就是   put   名称空间   类型   nbsp   解决   解释   同名   

原文地址:https://www.cnblogs.com/yangzhaon/p/10636638.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!