python基础--变量01

1.函数传递多余的位置参数----*args   保存为数组格式

传递多余的关键字参数------**kwargs  保存为字典格式

 

def test(x,*args,**kwargs):
    ######
    return res
test(1,2,3,4,a=3,b=4)

2.全局变量:在函数之前定义的变量(顶头写的),在所有函数中都可以调用

局部变量:在函数内部定义的变量(有缩进),只能在本函数内部调用

3.在函数内部改全局变量只需要在函数内部定义变量时加上修饰global,要写在最前边

name = "xiaohua"
def change_name():
    global name
    name = "xiaohei"
    print('change_name',name)
change_name()
print(name)

change_name xiaohei
xiaohei

如果函数的内容无global关键字,优先读取局部变量,能读取全局变量,无法对全局变量重新赋值,但是对于可变类型,可以对内部进行操作

如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值

name = ["小红","小黑"]
def a():
    name1 = "小胖"
    print(name1)
    print(name)


def b():
    global name
    name.append("小黄")
    print(name)
a()
b()
    

4.当代码开始运行时,遇到函数只编译不运行

name = "刚娘"

def weihou():
    name = "陈卓"
    def weiweihou():
        global name
        name = "冷静"
    weiweihou()
    print(name)

    
print(name)
weihu()
print(name)


#刚娘
#陈卓
#冷静

#函数运行顺序:
1
12-1 刚娘
4
8
6-1 改为冷静
7
9-4 陈卓
14-1  冷静

5.nonlocal与global类似,不过它指的是上一级的变量

猜你喜欢

转载自www.cnblogs.com/kedaxiaohei/p/10046466.html