zoukankan      html  css  js  c++  java
  • 函数

    函数

    认识函数

    函数将一些代码进行封装

    定义函数: 封装 减少重复代码

    # def 关键字  函数名():
    	函数体(代码块)
    def make():
        print('1')
        print('2')
        print('3')
        print('4')
        print('5')
        return 多个返回值是元组
    make()  #函数名 + 小括号 == 调用
    msg = make() # make == None  make() == '美女一枚'
    print(msg)
    

    函数的返回值

    def func():
        print('今天是周二')
        print('明天是周三')
        return 0.125
    	print('后天是周四')
         # retrun   不写返回的是None , return写了不写值返回的也是None  return 就是将内容返回了调用者   make()
        # 函数中当执行到return的时候 下面的代码就不执行了,并且终止这个函数
    

    函数的参数

    # 参数
    # 参数 定义的参数 形参
    # 调用的参数是 实参			形参和实参的数量  一一对应
    # 从实参到形参的过程 传参
    # addr 是不是一个变量  addr = '家'
    def func(addr,school): # 形参
        print(f'我在{addr}睡觉{school}')
        
    func(addr = '家',age = 18)
    # 实参的角度:
        #func('清华','东莞')         位置
        #func(addr = '清华',school = '东莞')   关键字
        #func('清华',school = '东莞')         混合
    # 实参的角度:
        #func(addr,school)             位置
        #func(school = '东莞')         默认参数
        #func(addr,school = '东莞')    混合   
        
    #函数形参规则       位置参数 > 默认参数
    #函数实参规则		  位置参数 > 关键字参数
    

    函数参数

    def eat(a,b*args):	    # 聚合 打包
        print(a,b,args)     # 元组
        # 形参位置    :    位置参数   >   动态位置参数
     eat('1','2','3','4','5')
    def eat(**kwargs):
        print(kwargs)		#字典
     eat('q' = '1','w' = '2','e' = '3')   
    
    def func(a,b,*args):	#聚合  
        print(a,b,*args)	#打散
    # args 返回的是元组  *args 将元组打回原来的数组
    func(1,2,3,4,5,6,7)
    
    def func(a = 1,b = 2,**kwargs):    # 默认参数  ** 聚合
        print(a,b,kwargs)
    func(a = 56, c = 22, b = 333, d = 66)
    
    
     def func(a,b,c = 1,*arg,**kwargs):  # 位置 > 动态位置 > 默认参数 > 动态默认参数
            print(a,b,c,args,kwargs)
     func(1,2,3,4,5,6,7,8,c = 33,d = 123,f = 345)
    
    def func(*args,**kwargs):  #万能   无敌
        print(args,kwargs)
    func(1,2,3,4,a = 1,b = 2)   # 位置  关键字  混合
    

    函数的注释

    def func(*args,**kwargs):
        '''
        
        :param args: 万能的位置参数
        :param kwargs: 万能的默认参数
        :return: 返回值
        '''
        print(args)
        print(kwargs)
        return
    
    print(func.__doc__)   # 查看函数的注释		函数名.__doc__
    

    函数的命名空间

     #内置空间
     #全局空间
     #局部空间
        
    # python关键字是存在内置空间的
    # py文件中顶头写的内容就存在全局空间
    # 函数内写的变量存在局部空间
    
    #a = 1
    #b = 2
    y = 9
    def func():
        y = 3     # 局部空间
        print(y)   #  3
    def func1():
        print(y)   #  9  局部空间不能共享
    
    # 找值顺序:局部空间 > 全局空间 > 内置空间
    # 加载顺序:内置空间 > 全局空间 > 内置空间
    
    #命名空间: 
       # 内置空间 + 全局空间
       # 局部空间
    

    函数的嵌套

    def func():
        func1()
        print(1)
    def func1():
        print(11111)
    func()    
    #11111
    #1
    

    global nonlocal

     #内置空间 +  全局空间 = 全局   globals()
     #局部空间 				      loacals()
    a = 10
    def func():
    	a = 20
        print(a)
        print(globals())    # 查看全局作用域的内容
        print(locals())     # 查看局部作用域的内容
    func()
    
    a = 10
    def func():
        global a	# 声明我要修改全局的变量a的值
        a = 20
        print(a)
    func()
    print(a)
    
    n = 1
    def func():
        n = 10
        def fun2():
            def func1():
                nolocal n  # 修改离得最近上一次里的变量值 上一层没有就继续往上找,找到全局最外层局部
                n = 100
                print(n)   # 10
            func1()
        func2()
    func()
    print(n)
    
  • 相关阅读:
    QString 与 string转换
    Lua 判断表是否为空方法
    QT 继承QWidget && 继承QDialog
    QNetworkAccessManager
    Lua语言特色
    Lua逻辑操作符
    Lua语言总结
    Lua 函数
    Lua数据类型
    QT 通过QNetworkReply *获取对应请求的URL地址
  • 原文地址:https://www.cnblogs.com/fengqiang626/p/11147660.html
Copyright © 2011-2022 走看看