当前位置: 首页 > news >正文

【Python】函数进阶(下)

3、作用域

作用域可以理解为一块空间,这块空间的数据是可以共享的。通俗点来说,作用域就类似一个房子,房子里的东西归所有人共享,其它房子里的人无法获取。

(1)函数为作用域

Python以函数为作用域,所以在函数内创建的所有数据可以在此函数中被使用,无法在其他函数中被使用。

代码示例:

(2)全局和局部

Python中以函数为作用域,函数的作用域其实就是一个局部作用域。

代码示例:

COUNTRY="中国"
CITY_LIST=[11,20]
def  func():print(666)

COUNTRY和CITY_LIST是在全局作用域中,在全局作用域中创建的变量称为   全局变量。全局变量可以在全局作用域中被使用,也可以在局部作用域中被使用。

func函数内部就是一个局部作用域,在函数内部创建变量称之为局部变量。且局部变量只能在该函数内部被使用。

注意:在局部作用域中想使用某个变量时,寻找的顺序是:优先在局部作用域中寻找,如果局部作用域中没有,则在全局作用域中寻找。如果想在全局作用域中寻找某个变量,只能在全局作用域中寻找。

注意:全局变量一般都是大写。

代码示例1:

代码示例2:

(3)global关键字

默认情况下,在局部作用域中对全局变量只能进行:读取和修改内部元素(可变类型的内部元素),无法对全局变量重新赋值。

1))读取

2))修改内部元素

代码示例:

3))无法对全局变量重新赋值

代码示例:

如果想在局部作用域中对全局变量重新赋值,则可以基于global关键字实现。

代码示例:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 写给大数据开发:在Databricks中自定义函数
  • 前端开发攻略---在Vue3项目中修改Element-Plus主题色
  • Kubernetes-Pod调度基础
  • 昇腾 - AscendCL C++应用开发 图像文件的解码时硬件对图像的宽度和高度的处理方式
  • Python开发中,SQLAlchemy 的同步操作和异步操作封装,以及常规CRUD的处理。
  • Java 3.1 - 计算机网络
  • dubbo:dubbo+zookeeper整合nginx实现网关(四)
  • oracle liunx 常用命令
  • OpenID Connect(OIDC)认证--keycloak与springboot项目的整合
  • SpringBoot的内置缓存以及整合第三方缓存
  • 终端文档安全管理系统是什么?一文给你详解!
  • Spring Boot 3.3 【六】一文读懂 Logback 日志框架
  • 白酒与家庭:团圆时刻的需备佳品
  • 网络攻击常见技术方法(14种)
  • Kotlin学习-01创建kotlin学习环境
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • angular组件开发
  • canvas 高仿 Apple Watch 表盘
  • Cookie 在前端中的实践
  • Docker入门(二) - Dockerfile
  • Flex布局到底解决了什么问题
  • Git初体验
  • Java 23种设计模式 之单例模式 7种实现方式
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • mysql innodb 索引使用指南
  • PHP CLI应用的调试原理
  • Rancher如何对接Ceph-RBD块存储
  • spark本地环境的搭建到运行第一个spark程序
  • Spring Boot快速入门(一):Hello Spring Boot
  • Unix命令
  • 初识 webpack
  • 初探 Vue 生命周期和钩子函数
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 高程读书笔记 第六章 面向对象程序设计
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 聚簇索引和非聚簇索引
  • 聊聊sentinel的DegradeSlot
  • 使用SAX解析XML
  • 小程序button引导用户授权
  • 一道闭包题引发的思考
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​ubuntu下安装kvm虚拟机
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • (1)(1.11) SiK Radio v2(一)
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net core Swagger 过滤部分Api