1、块级作用域

想想此时运行下面的程序会有输出吗?执行会成功吗?#块级作用域

if 1 == 1:

name = "lzl"

print(name)

for i in range(10):

age = i

print(age)

我们先看下执行结果C:/Users/L/PycharmProjects/s14/preview/Day8/作用域/main.py

lzl

9

Process finished with exit code 0

代码执行成功,没有问题;在Java/C#中,执行上面的代码会提示name,age没有定义,而在Python中可以执行成功,这是因为在Python中是没有块级作用域的,代码块里的变量,外部可以调用,所以可运行成功;

2、局部作用域

回顾之前学过的知识,我们学函数的时候,函数是个单独的作用域,Python中没有块级作用域,但是有局部作用域;看看下面的代码

#局部作用域def  func():

name = "lzl"

print(name)

运行这段代码,想想会不会有输出?Traceback (most recent call last):

File "C:/Users/L/PycharmProjects/s14/preview/Day8/作用域/main.py", line 23, in

print(name)

NameError: name 'name' is not defined

运行报错,我相信这个大家都能理解,name变量只在func()函数内部中生效,所以在全局中是没法调用的;对上面代码做个简单调整,再看看结果如何?

《python内置金融数据Python 五点搞定作用域》总结了关于python编码教程,对于我们来电脑技术网确实能学到不少知识。#局部作用域

def  func():

name = "lzl"

func()          #执行函数

print(name)

对之前的代码添加了一句代码,在变量name打印之前,执行了一下函数,此时打印会不会有变化?Traceback (most recent call last):

File "C:/Users/L/PycharmProjects/s14/preview/Day8/作用域/main.py", line 23, in

print(name)

NameError: name 'name' is not defined

执行依然报错,还是回到刚才那句话:即使执行了一下函数,name的作用域也只是在函数内部,外部依然无法进行调用;把前两个知识点记住,接下来要开始放大招了

3、作用域链

对函数做下调整,看看下面的代码执行结果如何?#作用域链

name = "lzl"

def f1():

name = "Eric"

def f2():

name = "Snor"

print(name)

f2()

f1()

学过函数,肯定知道最后f1()执行完会输出Snor;我们先记住一个概念,Python中有作用域链,变量会由内到外找,先去自己作用域去找,自己没有再去上级去找,直到找不到报错

4、终极版作用域

好,铺垫了够了,终极版的来了~~#终极版作用域

name = "lzl"

def f1():

print(name)

def f2():

name = "eric"

f1()

f2()

想想最后f2()执行结果是打印“lzl”呢,还是打印“eric”?记住自己的答案,现在先不把答案贴出来,先看看下面这段代码:#终极版作用域

name = "lzl"

def f1():

print(name)

def f2():

name = "eric"

return f1

ret = f2()

ret()

#输出:lzl

执行结果为“lzl”,分析下上面的代码,f2()执行结果为函数f1的内存地址,即ret=f1;执行ret()等同于执行f1(),执行f1()时与f2()没有任何关系,name=“lzl”与f1()在一个作用域链,函数内部没有变量是会向外找,所以此时变量name值为“lzl”;理解了这个,那么刚才没给出答案的那个终极代码你也知道答案了#终极版作用域

name = "lzl"

def f1():

print(name)

def f2():

name = "eric"

f1()

f2()

# 输出:lzl

是的,输出的是“lzl”,记住在函数未执行之前,作用域已经形成了,作用域链也生成了

5、新浪面试题li = [lambda :x for x in range(10)]

判断下li的类型?li里面的元素为什么类型?print(type(li))

print(type(li[0]))

#

#

可以看到li为列表类型,list里面的元素为函数,那么打印list里面第一个元素的返回值,此时返回值为多少?

更多:python内置金融数据Python 五点搞定作用域

https://www.002pc.comhttps://www.002pc.com/python/3979.html

你可能感兴趣的作用域,Python,搞定,五点

No alive nodes found in your cluster

0踩

0 赞

python内置作用域_python内置金融数据Python 五点搞定作用域相关推荐

  1. Python 五点搞定作用域

    转: http://www.pythontab.com/html/2016/pythonjichu_0908/1063.html 1.块级作用域 想想此时运行下面的程序会有输出吗?执行会成功吗? 1 ...

  2. python与tableau结合_Python与Tableau相结合,万字长文搞定传统线下连锁店数据分析...

    这是kaggle上的一份巴西传统线下汽车服务类连锁店的实际销售数据,大小约3.43G,包含了从2017年3月31日到2020年4月1日大约2600万多的销售数据. 分析该数据集可以探究该连锁店的销售情 ...

  3. python分析股票主力_python如何获取股票数据,python股票分析系统

    内容导航: Q1:怎样用python处理股票 用Python处理股票需要获取股票数据,以国内股票数据为例,可以安装Python的第三方库:tushare:一个国内股票数据获取包.可以在百度中搜索&qu ...

  4. 怎么扫描同网段mac地址linux,如何快速收集局域网内的IP+MAC信息?用这个扫描器分分钟搞定!!!...

    原标题:如何快速收集局域网内的IP+MAC信息?用这个扫描器分分钟搞定!!! 网 工 圈 中国圈内 最早的公益 公众号,本号已认证(关注近 5w+) 关注 科来MAC地址扫描器安装 1.右键" ...

  5. [转载] python支持complex吗_Python 内置函数complex详解

    参考链接: Python complex() 英文文档: class complex([real[, imag]]) Return a complex number with the value re ...

  6. python系统函数教程_Python入门基础教程之Python内置函数

    函数就是以功能为导向,一个函数封装一个功能,那么Python将一些常用的功能(比如len)给我们封装成了一个一个的函数,供我们使用,他们不仅效率高(底层都是用C语言写的),而且是拿来即用,避免重复早轮 ...

  7. python 取array并集_Python内置数据结构原理与性能简易分析

    ins @ngladc 文末左下方阅读原文指向了本人博客链接,不含广告.参考资料中的相关链接,可以在博客文章的最下方获取.推荐苹果手机用户使用浅色模式观看. 前言 对于一些算法题,可以使用Python ...

  8. python内建模块_Python 内建模块

    1.内建模块: 在Python中,有一个内建模块,该模块中有一些常用函数;而该模块在Python启动后.且没有执行程序员所写的任何代码前,Python会首先加载该内建函数到内存.另外,该内建模块中的功 ...

  9. python内置数据结构_Python内置数据结构(一)

    1.列表 (1)列表初始化 (2)下标/索引操作 (3)修改列表元素 (4)增加列表元素 1)append 2)insert 3)extend (5)删除列表元素 1)pop 2)remove 3)c ...

最新文章

  1. 谷歌Jeff Dean团队发文,探讨「学习模型」如何替代传统索引结构
  2. 【ZooKeeper Notes 9】ZooKeepr日志清理
  3. JBOSS配置系统应用的端口号
  4. 【Android 异步操作】Handler 机制 ( MessageQueue 空闲任务 IdleHandler 机制 )
  5. STM32常用数据类型 u8、u16、u32
  6. Vcastr 3.0 - flash video(flv) player (开源 Open Source)
  7. 文巾解题 525. 连续数组
  8. 5G NR CSI-RS
  9. No new data sinks have been defined since the last execution.
  10. 联合体(union)和结构体(struct)的区别
  11. 东北大姐剪纸被误认为油画,遭人质疑二十多年,只因太过逼真,看完后:真香!不愧是天下第一剪!...
  12. 2.11 queue
  13. C++ (tensorRT中学习)
  14. Tomcat日志打印乱码解决方法
  15. Chronos首页、文档和下载 - 作业调度器 - 开源中国社区
  16. 计算机应用基础165791,人大网大计算机应用基础试题答案资料.doc
  17. 最新实战讲解.htaccess文件rewrite规则
  18. 视频教程-Visio应用视频教程(上)-Office/WPS
  19. 插入新题注变乱了_Word 自动更改题注章节编号格式“图一.1”为“图1.1”
  20. Java实现QQ邮箱验证码发送

热门文章

  1. shell printf命令:格式化输出语句
  2. 技术选型:为什么批处理我们却选择了Flink
  3. 第27讲:令人抓狂的 JavaScript 混淆技术
  4. python正则匹配所有的中文,数字和英文
  5. 空降进阿里的 P10 都是什么人
  6. 线程、进程、多线程、多进程和多任务有啥关系?
  7. 程序员35岁破局之路
  8. LiveVideoStackCon 2020 漫游指南
  9. 莫斯科国立大学更新VQMT的测量指标
  10. 《Go语言圣经》学习笔记 第二章 程序结构