作用域|学习笔记

简介: 快速学习 作用域

开发者学堂课程【Python 语言基础 3:函数、面向对象、异常处理作用域】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/601/detail/8730



内容简介

一、什么是作用域

二、全局作用域

三、函数作用域

 

一、什么是作用域

# 作用域(scope)指的是变量生效的区域

(写一个变量不一定在整个程序都可见)

b=20 # 全 局变量

def  fn()

a=10 # a 定义在了函数内部,所以他的作用域就是函数内部,函数外部无法访问

print(‘函数内部:’,‘a=’,a)

Traceback(must recent call last):

File“06.作用于与命名空间.py”,line 10, in <module>

Print(‘函数外部:’,‘a=’,a)

NameError: name ‘a’ is not defined

***Rep1 Closed***

print(‘函数内部:’,‘b=’,b)

 

# print(‘函数外部:’,‘a=’,a)

# print(‘函数外部:’,‘b=’,b)

 

在 Python 中一共有两种作用域

 

二、全局作用域

- 全局作用域在程序执行时创建,在程序执行结束时销毁 .

- 在全局作用域中定义的变量,都属于全局变量,全局变量可以在程除的任意位置被访问

 

三、函数作用域

#   - 函数作用域在函数调用时创建,在调用结束时销毁

#   - 函数每调用一次就会产生一个新的函数作用域

例:

fn()

fn()

fn()

 

#   -在函数作用域中定义的变量,都是局部变量,它只能在函数内部被访问

变量的查找

#   - 当使用变量时,会优先在当前作用域中寻找该变量,如果有则使用,如果没有则继续去上一级作用域中寻找,如果有则使用,

没有则继续去上一级作用域中寻找,以此类推,

直到找到全局作用域,依然没找到,则抛出异常

Name Error: name ‘a’ is not defined

 

def  fn2():

a=30

def  fn3():

print(‘fn3中:’,‘a=’,a)

fn3()

fn3中:a=30

***Rep1 Closed***

(内部函数能看到外部函数,外部函数能看到全局函数;外部函数不能看到内部函数)

# fn2()

a=20

 

def fn3():

a=10 #在函数中为变量赋值时,默认都是局部变量赋值

# 如果希望在函数内部修改全局变量,则需要使用 global 关键字,来声明变量

global a # 声明在函数内部的使用a是全局变量,此时再去修改 a 时,就是在修改全局的 a

a=10

print(‘函数内部:’,‘a=’,a)

 

fn3()

print(‘函数外部:’,‘a=’,a)

相关文章
|
传感器 机器学习/深度学习 数据采集
2022年第十一届认证杯数学中国数学建模国际赛小美赛:C 题 对人类活动进行分类 建模方案及代码实现
本文提供了2022年第十一届认证杯数学中国数学建模国际赛小美赛C题"对人类活动进行分类"的建模方案和Python代码实现,包括数据预处理、特征提取、LSTM网络模型构建和训练评估过程。
343 11
2022年第十一届认证杯数学中国数学建模国际赛小美赛:C 题 对人类活动进行分类 建模方案及代码实现
|
6月前
|
JSON API 开发者
1688店铺所有商品API接口(1688API系列)
1688店铺所有商品API接口允许开发者通过输入店铺ID,获取指定店铺内的全部商品信息,包括名称、价格、库存、图片和销售数据等。该接口支持排序和分页参数,返回JSON格式数据,便于解析和应用。Python示例展示了如何使用requests库发送GET请求并处理响应,助力电商数据分析与业务拓展。
|
前端开发 JavaScript Java
计算机Java项目|基于Spring Boot的宠物咖啡馆平台的设计与实现
计算机Java项目|基于Spring Boot的宠物咖啡馆平台的设计与实现
270 0
|
12月前
|
Unix C语言
UNIX操作系统的开发始于1969年
UNIX操作系统的开发始于1969年
289 5
|
人工智能 算法 安全
强 AI 和弱 AI 之间的区别
强 AI 和弱 AI 之间的区别
|
人工智能 编解码 搜索推荐
AI绘画入门:从小白到入门,轻松玩转AI作画
随着AI技术的不断发展,AI绘画已经不再是遥不可及的梦想,它正逐渐走入大众视野,成为了一种新兴的艺术创作形式。即使没有绘画基础,你也可以通过AI工具轻松创作出精美的作品。本文将带你从小白入门,学习AI绘画的基础知识和操作技巧,让你快速体验AI绘画的乐趣。
754 0
|
Kubernetes Cloud Native Apache
FFA 2023 专场解读:流批一体&平台建设&云原生
完整议程已公开,期待 12 月 8-9 日与你 Flink Forward Asia 2023 相会!
803 3
FFA 2023 专场解读:流批一体&平台建设&云原生
|
安全 Windows
Windows 10 用户变量、系统变量等环境变量新建、编辑修改与删除方法
Windows 10 用户变量、系统变量等环境变量新建、编辑修改与删除方法
627 2
|
算法 数据处理
数据拟合、参数估计、插值等数据处理算法
数据拟合、参数估计、插值等数据处理算法
358 0
数据拟合、参数估计、插值等数据处理算法
|
机器学习/深度学习 自然语言处理 数据可视化
阿里云 ModelScope模块分析测评
阿里云 ModelScope 是一种用于模型评估和性能分析的开源工具。它旨在帮助用户更好地了解和评估不同的机器学习模型,并提供可视化和统计分析来支持决策制定。