zoukankan      html  css  js  c++  java
  • Python 函数之间的调用和作用域

    函数之间的调用

    1.内嵌函数之间的调用(在同一个py文件内的函数之间的调用)

    #定义offer函数
    def offer(name):
    return name
    #定义people函数
    def people(name,likefood):
    '''people函数内调用offer函数'''
    print(name+'喜欢'+likefood)
    M=offer('清华大学')
    print(name+'拿到了'+M+'offer,他请大家吃他喜欢吃的'+likefood)

    print(people('小张','牛排自助'))

    输出结果:
    小张喜欢牛排自助
    小张拿到了清华大学的offer,他请大家吃他喜欢吃的牛排自助

    注意:

    1.被调用的函数,必须在调用之前被定义,也就是people函数要想调用offer函数,那offer函数必须在people函数之前就被定义好,否则会报错,被调用的函数找不到,无法继续内嵌调用

    2.函数之间调用的禁忌!!!

    • 两个函数之间不要相互调用,相互调用会导致递归错误,内存有限,一直循环,停止不下来,直到内存资源被耗尽
    • 函数不要自己调用自己,否则也会导致递归错误

     函数的作用域

    1.函数的全局变量:定义的变量,整个py文件内可以公共使用,在定义的函数体外定义

    2.函数的局部变量:在函数体内定义的变量,叫做函数的局部变量

    a='祖国我爱你'
    print('这是函数体外的变量a:{}'.format(a))
    def add(name):
        a='中国是一个充满爱的国家'
        print('{}说:这是函数体内的变量a:{}'.format(name,a))
        return a
    
    add('小明')
    
    输出结果:
    这是函数体外的变量a:祖国我爱你
    小明说:这是函数体内的变量a:中国是一个充满爱的国家

    总结:函数体外定义的变量为全局变量,函数体内定义的变量为局部变量

    3.全局变量和局部变量之间的关系

    • 全局变量不能获取局部变量
    • 局部作用域能获取全局变量
    • 全局变量不能修改局部变量
    • 局部作用域能修改全局变量(但是前提必须在局部变量前加global关键字)

    全局作用域不能获取局部变量

    c=10
    def add(a,b):
        c=a+b
        c=c+2
        return c
    e=add(3,3)
    print(e)
    print(c)  #这里打印的是全局变量的c,而不是局部变量的
    
    输出结果:
    8
    10

    局部作用域获取全局变量

    c=10
    def add(a,b):
        e=a+b+c    #局部作用域获取全局变量
        return e
    al=add(3,3)
    print(al)
    
    输出结果:
    16

    加global,在局部作用域修改全局变量,

    如果不加global 表明是全局变量,局部是不能修改全局变量的

    如果想再局部去修改全局变量,加global表明这是一个全局变量

    c=10
    def add(a,b):
        global c   #在局部作用域加global,将局部的c变成全局变量
        c=c+8
        print(c)
    add(6,6)
    print(c)  
    
    输出结果:
    18
    18

    函数的作用

    1. 当你发现一直在粘贴、复制相同的或者类似的代码时候,就可以定义一个通用的函数,把相同的一段操作程序存储到函数体内,直接调用函数即可(这也就是所谓的封装)
    2. 函数体里面存放的都是些形式参数,调用时,传入的为实际参数
  • 相关阅读:
    TSQL入门(msdn)
    在代码中,获取Entity Framework生成的TSQL查询语句
    Code First(一)
    UDPClient的用法
    Building Applications that Can Talk(转)
    Asynchronous Web and Network Calls on the Client in WPF(摘录)
    DropBox能正常使用了
    显示GIF图标报错:“A generic error occurred in GDI+.”
    第 2 篇Scrum 冲刺博客
    第 1 篇 Scrum 冲刺博客
  • 原文地址:https://www.cnblogs.com/lucky1212/p/13938333.html
Copyright © 2011-2022 走看看