函数定义的参数总结
-
标准参数
-
缺省参数,一般经验而言缺省参数声明在最后
-
不定长参数(参数的个数不确定)
不定长参数元祖
不定长参数字典
def fun(a, b, *args, **kwargs): print(a) print(b) print(args) print(kwargs) fun(1, 2, 3, 4, name = "hello", age = 20) #结果: 1 2 (3, 4) {'name': 'hello', 'age': 20}
拆包
定义
拆开、分解
拆包作用
-
适用于容器类型
-
格式:
my_tuple = ("张三", 20, "男") name, age, sex = my_tuple
组包
name = "zs"
age = 20
sex = "nan"
my_tuple = tuple()
my_tuple = name, age, sex
引用
定义
引用指的是在计算机中变量记录数据的一种方式
def foo():
print(‘from foo’)
foo()
func=foo #引用,赋值
print(foo)
print(func)
func()
总结
- 一个变量如果是进行了重新赋值,那么他的地址就会发生改变
- 如果一个变量拥有了一个内存地址的引用就可以为所欲为
- id()函数利用函数可以查看一个变量在内存中地址的标识(独立序号)
可变、不可变
可变
b=b+b是重新赋值
b+=b对原来的数据进行修改 效率高
- list
- dict
- set
不可变
无论是b=b+b 还是b+=b都属于重新赋值
- str
- tuple
全局global的使用
a = "hello world"
b = [1, 2, 3, 4, 5]
def text1():
print(a)
global b
b = [2, 3, 4, 5, 6]
print(b)
text1()
print(a)
print(b)
#输出结果
hello world
[2, 3, 4, 5, 6]
hello world
[2, 3, 4, 5, 6]
在函数内部想对全局变量进行重新赋值则要用global,而如果全局变量是可变的在函数内部想要在不改变引用的情况下重新改变值则不需要global