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

Python基础10_动态传参,名称空间和作用域,函数嵌套,关键字global和nonlocal

一.函数参数-形式参数-动态传参
1. 动态接收位置参数 args
在参数位置编写
表示接收位置参数,在形参位置把传递过来的实参进行聚合,聚合成元祖
注意:动态参数必须在位置参数后面
2. 动态接收关键字参数 kwargs
在参数位置编写
表示接收动态关键字参数,接收的是一个字典
动态传参的最终顺序: 位置参数 > args > 关键字参数 > kwargs
可以随意搭配,但顺序不能变
形参: 聚合
位置参数* -> 元组
关键字参数
-> 字典
实参: 打散
列表, 字符串, 元素 ->

字典 ->
3. 动态传参的另一种传参方式:
def chi(args):
print(args)
lst = [a, b, c]
chi(
lst)
#在实参位置上给一个列表,元祖或字符串,前面加表示表示把这个序列按顺序打散
#在形参的位置上加
表示把接收道德参数组合成一个元祖
如果实参位置是一个字典,也可以打散,但是要加

4. 无敌传参
def func(*args, **kwargs) 任何参数都可以接收
二. 命名空间和作用域
1.命名空间:存放名字和值的关系的空间,变量就是存储在这个空间
分类:
全局名称空间:我们直接在py文件中函数外声明的变量都数以全局名称空间
局部名称空间:在函数中声明的变量会放在局部名称空间
内置名称空间:存放在python解释器中的一些内置内容
加载顺序: 内置名称空间,全局名称空间,局部名称空间(函数被执行的时候)
取值顺序:局部名称空间,全局名称空间,内置名称空间
名称空间可能有无数个
局部名称空间是相互独立的
2.作用域:就是作用范围,按照生效范围分为全局作用域和局部作用域
全局作用域:包含内置名称空间和全局名称空间,整个文件的任何位置都可以使用(遵循从上到下逐行进行)
局部作用域:包含局部名称空间,在函数内部可以使用
globals() 查看全局作用域中的内容 写在哪查看哪的内容 返回值类型是字典
locals() 查看局部作用域中的变量和函数信息 写在哪里都一样查看全局作用域内容 返回值类型是字典
可以从局部作用域向全局作用域寻找
三. 函数的嵌套
在函数中声明函数
只要遇见了()就是函数的调用,如果没有()就不是函数的调用
在内部函数中使用变量的时候, 查找顺序: 先找自己 -> 上一层 -> 上一层..全局 -> 内置
四. 关键字global和nonlocal
global 表示从全局把一个变量引入到局部
nonlocal 表示在局部寻找离他最近的外层的一个变量

转载于:https://www.cnblogs.com/guyannanfei/p/10085476.html

相关文章:

  • Log4j.properties配置详解
  • Linux环境搭建 | 使用WinSCP远程连接虚拟机
  • Spring boot JPA 用自定义主键策略 生成自定义主键ID
  • java 环境 eclipse 配置
  • 福大软工 · 第十次作业 - 项目测评(团队) [已完成]
  • Html页面插入flash代码
  • 关于自定义 Alert
  • C#练习4
  • python 基础语法 - 函数(一)
  • Mysql在sql中截取时间类型字段的年月日
  • 小议C#接口的隐式与显示实现
  • 【node】搭建自己的博客开坑(一)——项目的构思与设计——(后端部分)
  • linux内核管理--之定制一个属于自己的小型系统
  • 十二月技术考核:Windows系统故障排查
  • Android 之 内存管理
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 77. Combinations
  • CSS相对定位
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JavaScript 奇技淫巧
  • JS字符串转数字方法总结
  • Python学习之路16-使用API
  • Redux 中间件分析
  • vue的全局变量和全局拦截请求器
  • 当SetTimeout遇到了字符串
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 类orAPI - 收藏集 - 掘金
  • 那些年我们用过的显示性能指标
  • 小程序开发中的那些坑
  • zabbix3.2监控linux磁盘IO
  • 阿里云ACE认证学习知识点梳理
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • #HarmonyOS:Web组件的使用
  • #Linux(make工具和makefile文件以及makefile语法)
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (第二周)效能测试
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (规划)24届春招和25届暑假实习路线准备规划
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)为C# Windows服务添加安装程序
  • **PHP二维数组遍历时同时赋值
  • .NET MVC第五章、模型绑定获取表单数据
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .sh
  • :如何用SQL脚本保存存储过程返回的结果集
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [2016.7 test.5] T1
  • [c]扫雷
  • [C++]C++入门--引用
  • [javascript]Tab menu实现
  • [one_demo_6]逆置整数
  • [python 刷题] 2866 Beautiful Towers II
  • [python] `sys.settrace` 跟踪函数