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
  • 相关阅读:
    反向代理实例
    nginx常用命令和配置
    nginx的安装
    Can Live View boot up images acquired from 64bit OS evidence?
    What is the behavior of lnk files?
    EnCase v7 search hits in compound files?
    How to search compound files
    iOS 8.3 JB ready
    Sunglasses
    现代福尔摩斯
  • 原文地址:https://www.cnblogs.com/Axianba/p/11265519.html
Copyright © 2011-2022 走看看