初学python-day11 函数3
2024-10-16 00:49:23
函数
1. global关键字
修改全局变量,声明函数内外使用同一个变量
示例:
1 name = 'xiaoming'
2
3 def test():
4 global name
5 name = 'hello'
6
7 test()
8 print(name)
9
10
11 运行结果:
12 hello
2.nonlocal关键字(只能在函数嵌套时使用)
声明函数内部使用同一个变量
name = 'xm'
def test():
name = 'xh'
def inner():
nonlocal name
name = 'laowang'
print('inner-->', name)
inner()
print('test-->', name) test()
print('glocal-->', name) 运行结果: inner--> laowang
test--> laowang
glocal--> xm Process finished with exit code 0
3.值传递与引用传递
前提:可变类型与不可变类型
不可变类型:类似C++的值传递,比如整数、元组等;传递的是变量的值,不会影响变量本身。
可变类型:类似C++的引用传递,如列表、字典等;将内存地址传递过去,将值进行修改,本身也会发生改变。
--值传递
在函数内部如果修改了函数外部的变量,那么在内部创建了一个同名的新的变量和函数外部的是没关系的。
num = 1
def changeNum();
num =2
print(num) changeNum()
print(num)
--引用传递
可变类型在函数内部进行了修改,那么在外部的变量也会发生改变。
def changDic(kwarg):
print(kwarg) # 第三步
kwarg['sex'] = 'man' # 第四步
print(kwarg) # 第五步 dic = {'name':'xm', 'age':18} # 第一步
changDic(dic) # 第二步
print(dic) # 第六步
最新文章
- 【转】How to hire——创业公司应该如何招人
- memcached服务器
- XML序列化与反序列化
- 数据结构2 静态区间第K大/第K小
- AWS EC2的VPN-PPTP搭建教程(on aws redhat6.5 X64 centOS 6.5)
- Mac or Centos 下如何编译objective-C
- 【整理修订】Android.mk详解
- vs2015中ctrl+shift+F进行“在文件中查找”,有时候无效?
- JAVA基础---编码解码
- C# - 什么是事件绑定?
- python爬虫从入门到放弃(九)之 Requests+正则表达式爬取猫眼电影TOP100
- Java实现Windows、Mouse监听器
- 第二章 函数和window对象
- Java知多少(40)接口和抽象类的区别
- 【转】比较init-method,afterPropertiesSet和BeanPostProcessor
- linux command curl and sha256sum implement download verification package
- oracle之 获取建表ddl语句
- 2018.09.16 bzoj3757: 苹果树(树上莫队)
- uva-1636-概率
- js的window对象