作家
登录

Python中的函数与方法 以及Bound Method和Unbound Method

作者: 来源: 2017-05-15 15:07:28 阅读 我要评论

  • #### 各自办法等效调用 #### 
  • Traceback (most recent call last): 
  •   File "C:/Users/Administrator/ZGZN_Admin/ZGZN_Admin/1.py", line 20, in <module> 
  •     print '## 类办法 %s' % A.f() 
  • TypeError: unbound method f() must be called with A instance as first argument (got nothing instead 
  • 缺点已经很明显了: 函数未绑定, 必须要将A的实例作为第一个参数

    既然它请求第一个参数是 A的实例对象, 那我们就试下修改代码:

    Bound Method 和 Unbound Method

    1. class A(object): 
    2.     def f(self): 
    3.         return 1 
    4. a = A() 
    5.   
    6. print '#### 各自办法等效调用 ####' 
    7. print '## 类办法 %s' % A.f(a)   #传入A的实例a 
    8. print '## 实例办法 %s' % a.f() 
    9.   
    10. ## 结不雅 ## 
    11. #### 各自办法等效调用 #### 
    12. ## 类办法 1 
    13. ## 实例办法 1  

    可以看出来, Bound 和 Unbound断定的根据就是, 当办法真正履行时, 有没有传入实例, A.f(a) 和 a.f() 用法的差别只是在于, 第一种须要工资传入实例才能调用, 而第二种, 是虚拟机帮我们做好了传入实例的动作, 不消我们那么麻烦罢了, 两种办法本质上是等价的。

    【编辑推荐】

    1. 进步Python运行效力的六个桥绫桥
    2. 7个你如今就钙揭捉?习Python的来由
    3. Python 中的异步编程:Asyncio
    4. 一文贯通python文件攫取
    5. 基于Python和JavaScript编写物联网温度计法度榜样
    【义务编辑:枯木 TEL:(010)68476606】

      推荐阅读

      “视”创未来,首届家庭实时视频产业联盟论坛呼吁共建产业生态

    5月11日下昼,以“视”创将来为主题的首届家庭及时视频家当联盟论坛在深圳福田隆重召开。华为云核心>>>详细阅读


    本文标题:Python中的函数与方法 以及Bound Method和Unbound Method

    地址:http://www.17bianji.com/lsqh/35218.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)