zoukankan      html  css  js  c++  java
  • 关于函数对象的理解

    一:函数对象的简单简单介绍:

      在面向对象编程语言中,有这门一句话:一切皆对象,python也是一门面向对象的语言,在python中,函数对象就是:把函数的内存地址当作一种变量值去使用.

      具体体现在如下几个方面:

        1.函数可以被引用(在函数被引用时,不应该在函数名后加括号),简单示例如下:

         def func1():

           print('from func')  

         func2=func1

         func2()

         运行结果为:from func

        2.函数可以作为函数的参数传给另外的函数,简单示例如下:

         def func1():

           print('from func')  

         def bar(fax)

           fax()

         bar(func1)

        3.函数可以作为函数的返回值,简单示例如下:

         def func2():

           print('hello')

         def bar()

           return func2

         f=func2()

         f()

        4.可以当作容器类型的元素,简单示例如下:

         def func3():

           print('from func3')

         l=[func3,]

         l[0]()

    二.关于函数对象的简单示例:

    编写一个购物车程序,具有登录,注册,购物,退出等功能

    def login():

      print('login successful')

    def register():

      print('successful')

    def shopping():

      print('shopping successful')

    def outer():

      exit()

    dic={

      '1':login

      '2':register

      '3':shopping

      '0':exit

    }

    print("""

      1.登录

      2.注册

      3.购物

      4.退出

    """)

    while True:

      choice=input('请输入你的选择:')

      if choice in dic:

        dic[choice]()

      else:

        print('error')

      

          

      

  • 相关阅读:
    CF710F String Set Queries(AC自动机+二进制分组)
    P5231 [JSOI2012]玄武密码(AC自动机)
    AC自动机基础&应用
    [SDOI2011]计算器(快速幂,线性同余方程,BSGS)
    数论——欧拉定理和费马小定理
    AtCoder Beginner Contest 173 题解
    【CSP2019】树的重心(树的重心、倍增、换根)
    CF708C Centroids(换根dp,树的重心)
    凸包(Graham与Andrew算法求凸包)
    [USACO10MAR]Great Cow Gathering G(换根dp)
  • 原文地址:https://www.cnblogs.com/yang220/p/yang_3.html
Copyright © 2011-2022 走看看