zoukankan      html  css  js  c++  java
  • Python 函数变量

    函数变量

      函数名是变量,它在创建函数时绑定一个函数

    # 示例:
    def f1():
        print"f1函数被调用")
    f2 = f1 #两个变量同时绑定一个函数
    f2()  #f1 函数被调用
       
    # 示例2:
    def f1():
        print("f1")
    def f2():
        print("f2")
    f1,f2 = f2,f1
    f1()# f2

    一个函数可以作为另一个函数的实参传递

    # 示例:
    function_as_args.py
    def f1():
        print("f1被调用")
    def f2():
        print("f2被调用")
    def fx(fn):
        print(fn)
        fn()#调用函数
    fx(f1)
    
    
    def goodbye(l):
        for  x in l:
            print("再见:",x)     看懂
    def operator(fn,l):
        fn(l)
    operator(goodbye,["Tom","Jerry","Spike"])

    练习;

    # 看懂下列代码:
    def myinput(fn):
        L = [1,3,5,7,9]
            return fn(L)
    print(myinput(max))
    print(myinput(min))     
    print(myinput(sum))
    
    # 函数可以作为另一个函数的返回值
    # 示例见:
         # function_as_return_value.py
          
    
    def get_function():
        s = input("请输入你要做的操作:")
        if s  == "求最大":
            return max 
        elif s == "求最小":
            return min 
        elif s == "球和":
            return sum
    l=[2,4,6,8,10]
    f = get_function()
    print("f绑定:",f)
    print(f(l))

    练习:

    # 写一个计算公式的解释执行器
         # 已知有如下一些函数:
            # def myadd(x,y):
            # return x+y
        # def mysum(x,y):
            # return x-y
        # def mymul(x,y):
            # return x * y
    # 定一个带有一个参数的函数 get_func(s):
           # def get_func(s):
           #  ... # 此处自己实现
    # 此函数的在传入字符串“加”或“+”返回myadd函数:
    # 此函数的在传入字符串“乘”或“*”返回myadd函数:
    # 在主函数中程序如下:
        # def main():
                # while True:
                # s = input("请输入计算公式:") # 10 加 20
              # l = s.split()  # L = ["10","加","20"]
            # a = int(l[0])
            # b = int(l[2])
              # in = get_fuc(l[1])
            # print("结果是:",fn(a,b))
    
    def myadd(x,y):
        return x+y
    def mysum(x,y):
        return x-y
    def mymul(x,y):
        return x * y
    def get_func(s):
        if s == "" or s == "+":
            return myadd
        elif s == "" or s == "-":
            return mysum
        elif s == "" or s == "*":
            return mymul
    def main():
            while True:
                s = input("请输入计算公式:") # 10 加 20
                if not s:
                    break
                l = s.split()      # L = ["10","加","20"]
                a = int(l[0])
                b = int(l[2])
                fn = get_func(l[1])
                print("结果是:",fn(a,b))
    main()

    函数的嵌套定义
      函数嵌套定义是指一个函数里用def语句来创建其他函数的情况

    # 示例见:
    # function_embed_def.py
    # 此示例示意函数的嵌套定义
    def fn_outer():
        print("fn_outer被调用")
        # 此处能否创建新的函数并且调用呢?
        def fn_inner():
            print("fn_inner被调用!")
        fn_inner() # 调用函数内部的fn_inner
        fn_inner()
    
        print("fn_outer调用结束")
    fn_outer()  

    python 作用域

    # 作用域也叫名字空间,是访问变量时查找变量名的范围空间
      
    # 示例:
    a = 100
    def fx():
      a = 10000 # a = 10000 和 a = 100  是两个不同作用的域内的变量
        print(a)
    fx()
    print(a)

    python的四个作用域  LEGB

    作用域                   英文解释                         英文简写
    局部作用域(函数内)       Local(function)                  L
    外部嵌套函数作用域         Enclosing function local          E
    函数定义所在模块的作用域    Global(module)                   G
    python 内置模块的作用域    Builtin(python)                  B
  • 相关阅读:
    论知识共享平台
    网虫推荐firefox 4.0插件
    solaris下常见文件压缩/解压方式简单小结—待续中
    Nginx的启动,关闭,重启脚本
    怎样将oracle数据库用户锁住和解锁
    【APACHE】如何重启Apache?
    【MYSQL】解决Mysql直接登录问题(删除匿名用户)
    【PHP】关于set和get函数
    【JMAIL】jmail无法收邮件问题
    【PHP】Class ‘mysqli’ not found 问题
  • 原文地址:https://www.cnblogs.com/Axianba/p/11265519.html
Copyright © 2011-2022 走看看