码迷,mamicode.com
首页 > 其他好文 > 详细

闭包函数

时间:2018-06-11 20:28:35      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:返回值   闭包函数   style   UNC   打印   ons   imp   www.   函数定义   

1.作用域关系在函数定义阶段就已经固定死了,与调用位置无关。

即在任意位置定义函数,都需要跑到定义函数时寻找作用域关系。

def f1():
x=1
def inner():
print(x)

return inner

func=f1()

def f2():
x=111111
func()

f2() # 打印结果为1


2.闭包函数
闭指的是该函数是一个内部函数
包指的是该函数对外部作用域(非全局作用域)名字的引用。
def outter():
x = 1
def inner():
print(x)

return inner

f=outter()

def f2():
x=1111111
f()

f2() # 1


def f3():
x=4444444444444
f()

f3() # 1

3.
为函数体传值的方式一:使用参数的形式
def inner(x):
print(x)

inner(1)
inner(1)
inner(1)
为函数体传值的方式二:包给函数
‘‘‘
def outter(x):
# x=1
def inner():
print(x)
return inner

f=outter(1)
f()
‘‘‘

最简单的获取封面内容的函数
直接通过实参给形参传值
缺点:每次爬取都要重新赋值,很费事
import requests

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

get(‘https://www.baidu.com‘)

get(‘https://www.python.org‘)

4.返回值返回的不仅仅是闭包函数的内存地址,还有外部作用域(不包括函数外部的作用域)名字的引用。

import requests


def outter(url):
# 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‘)


baidu()
python()

闭包函数

标签:返回值   闭包函数   style   UNC   打印   ons   imp   www.   函数定义   

原文地址:https://www.cnblogs.com/Roc-Atlantis/p/9168651.html

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