lg04551

一、命名关键字

就是在*后面参数都是命名关键字参数

特点是必须传值,结束函数必须按照key=value的形式,必须要用指定的key名

def foo(x,y,*,z)

  print(x,y,z)

foo(1,2,z=3)

二、函数的嵌套调用:在函数内又调用了其他函数

def max2(x,y)

if x>y:

  return x

else:

  return y

def max3(x,y,z):

res1=max2(x,y)

res2=max2(res1,z)

return res2

print(max3(11,200,1))

2、函数的嵌套定义:在函数内定义其他函数

def func1():

  print(\'aa\')

  def fun2() #func2=内存地址

    print(\'bb\')

   print(fun2)

   fun2()

fun1()

def f1():
print(\'f1\')
def f2():
print(\'f2\')
def f3():
print(\'f3\')
f3()
f2()
f1()

三、名称空间:存放名字与值绑定关系的地方
名称空间分三类:
1、内置名称空间:存放python解释器自带的名字,在解释器启动时就生效,关闭则失效
2、全局名称空间:文件级别的名字,在执行文件的时候生效,在文件结束或者在文件执行间被删除失效


3、局部名称空间:存放函数内定义的名字(函数的参数以及函数内的名字都 存放与局部名称空间),
在函数调用时临时生效,函数结束则失效
def func(x):
  y=2
fun(1)

加载顺序:内置名称空间-》全局名称空间-局部名称空间
查找名字:局部名称空间->全局名称空间->内置名称空间


四:作用域
全局作用域:包含内置名称空间与全局名称空间的名字,
特点
在任何位置都能访问的到
该范围内的名字会伴随程序整个生命周期
局部作用域:包含的是局部名称空间的名字
特点:
只能在函数内使用
调用函数时生效,调用结束失效

函数在python中第一类对象?
1、可以被引用
2、可以当中参数传入
3、可以当中函数的返回值
4、可以当中容器类型的元素

def auth():
print(\'认证\')
def reigster():
print(\'注册\')
def search():
print(\'查看\')

l={\'1\':auth,
\'2\':reigster,
\'3\':search,
}
def interactive():
while True:
print(\'\'\'
1、认证
2、注册
3、查看
\'\'\')
choice=input(\'>>..\').strip()
if choice in l:
l[choice]()
else:
print(\'非法操作\')
interactive()

闭包函数
指定义在函数内部的函数
作用域关系在函数定义阶段就规定死了,与调用位置无关
将值以参数的形式传入

import requests

def get(url):
response=requests.get(url)
if response.status_code == 200:
print(response.text)


get(\'https://www.baidu.com\')

import requests
import time

def outter(url): #url=\'https://www.baidu.com\'

# url=\'https://www.baidu.com\'
def get():
response=requests.get(url)
if response.status_code == 200:
print(response.text)

return get



baidu=outter(\'https://www.baidu.com\')
python=outter(\'https://www.python.org\')


posted on 2018-03-28 17:49  lg04551  阅读(76)  评论(0编辑  收藏  举报

分类:

技术点:

相关文章: