文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python函数的进阶

2023-01-30 23:01

关注

1. 动态传参
*, ** :
形参: 聚合
位置参数* -> 元组
关键字** -> 字典
实参: 打散
列表, 字符串, 元素 -> *
字典 -> **
形参顺序(重点):
位置, *args, 默认值, **kwargs

 

无敌传参
def func(*args, **kwargs): arguments参数 keyword-arguments关键字参数
pass

 

2. 作用域和名称空间
名称空间: 用来存放名字(变量, 函数名, 类名, 引入的模块名)的

1. 全局名称空间: 我们在py文件中自己写的变量, 函数.....
2. 内置名称空间: 我们python解释器提供好的一些内置内容(print, input....)
3. 局部名称空间: 在我们执行函数的时候.会产生一个局部名称空间. 放的是: 函数内部的内容(变量, 函数,类...)

名称空间可能会有无数个, 局部名称空间而言. 相对是独立的.一般互不干扰

作用域:
1. 全局作用域: 内置+全局
2. 局部作用域: 局部

globals() 查看全局作用域
locals() 查看当前作用域

 

3. 函数的嵌套
在函数中声明函数
在内部函数中使用变量的时候, 查找顺序: 先找自己 -> 上一层 -> 上一层..全局 -> 内置

 1 def func0():
 2     a = 50
 3     def func1():
 4         a = 10  # 局部
 5         def func2():
 6             nonlocal a
 7             a += 10  # a = a +10 python不让这么干
 8             # a = 30
 9             print('func2', a)
10         func2()
11         print(a)
12     func1()
13     print(a)
14 func0()
15 flag = False

 

4. nonlocal和global关键字
global: 在局部引入全局变量

 1 a = 10
 2 def func():
 3     def inner():
 4         # 慎用
 5         global a  # global 表示从全局把一个变量引入到局部,后面使用的a都是全局变量
 6         a += 10  # ?? a = a+10 # 现在的a是全局的,你现在视图改变全局变量 +global可改
 7         print('里面的打印', a)
 8 
 9     inner()
10 func()
11 print('外面的打印', a)

 


nonlocal: 在局部...内层函数引入外层离他最近的那个变量.

 1 nonlocal 在局部,寻找离它最近的外层的一个变量
 2 a = 50
 3 def func1():
 4     a = 10 # 局部
 5     def func2():
 6         nonlocal a
 7         a += 10 # a = a +10 python不让这么干
 8         # a = 30
 9         print('func2', a)
10     func2()
11     print(a)
12 func1()
13 print(a)

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯