1,可变参数
#参数组 **字典 * 列表
# 函数的参数 位置参数必须在关键字的左边
# 位置参数必须一一对应,缺一不行,多一也不行
def test(x,*args): #args 当作元组来返回
print(x)
print(args)
#test(1,2,3,4)
test(1,*["x","y","z"])
def test2(x,**kwargs):
print(x)
print(kwargs)
test2(1,y=2,z=3)
print("..............")
def test3(x,*args,**kwargs): # 可以接受任何参数
print(x)
print(args)
print(kwargs)
test3(1,2,3,3,*["x","y"],y=2,**{'name':1})
#下面是打印结果
# 1
# (2, 3, 3, 'x', 'y')
# {'y': 2, 'name': 1}
全局函数
# 全局变量 没有任何缩进
#局部变量 函数内定义
name = 'lhf' #全局变量
def change_name():
global name
name = "发送飞洒" #如果函数中有global ,变量本质上就是全局,可读取,可赋值
#change_name()
def quming():
name = "aaaa" # 如果函数的内容无global关键字,优先读取局部变量,只能读取全局变量,无法对全局变量进行赋值
# 但是对于可变类型, 可以对内容元素进行操作
quming()
print(name)
NAME = ["A","B"]
def adName():
NAME.append("C") # 但是对于可变类型, 可以对内容元素进行操作
adName()
print(NAME)
#报错的写法
# def eror():
# NAME = "ZIJI"
# global NAME
# print("hha",NAME) # 不去定到底是那个变量
# eror()
name = "af"
def weihou():
name = "bb"
def wewehou():
nonlocal name # 这里的global 代表全局的。 nonlocal name 指的是上一级别的变量
name = "cc"
wewehou()
print(name)
print(name)
weihou()
print(name)