方法的多种调用方式

  方法调用确实我们每个人都会,但是我觉得大家可能用的最多的就是那种常规的方式,这里呢,我要记录一下另外几种方式

 1 from operator import attrgetter
 2 from operator import methodcaller
 3 
 4 
 5 class Valley:
 6     def func(self):
 7         print("测试方法")
 8 
 9 
10 if __name__ == '__main__':
11     v = Valley()
12     # 除了最常规的方式(绑定方法、非绑定方法)调用方法以外
13     # one
14     getattr(v, "func").__call__()
15     # two
16     attrgetter("func")(v).__call__()
17     # three
18     methodcaller("func")(v)

  这三种方式无非就是在指定对象中先寻找属性,然后再调用

  第三种方式不同的是,他会自动返回一个callable_obj,其他则需要手动

 

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:方法的多种调用方式 - Python技术站

(0)
上一篇 2023年4月2日 下午4:43
下一篇 2023年4月2日

相关文章

  • 工匠回忆(一)

    不久之前看过《python工匠》,腾讯大佬朱磊写的,后来一段时间零零散散也会翻开看看,强烈推荐!!! 1、变量注释   变量与注释是最接近自然语言的东西,把变量与注释搞好,同样一段代码,却带来两种截然不同的体验   1.1、变量开辟的必要性   1.2、变量注意靠近使用   1.3、注意变量描述性要强、同时注意其长度   1.4、变量的命名要突出类型   1…

    python 2023年5月4日
    00
  • 抽象类的子类化机制

    抽象类:可以作为顶层基类,从高层次规范编程接口 1、在abc模块中,最常见的抽象类有Iterable,我们可以用他判断一个对象是不是可迭代对象 1 from collections.abc import Iterable 2 3 4 class Valley: 5 6 def __iter__(self): 7 … 8 9 10 if __name__ …

    Python开发 2023年4月2日
    00
  • 在*args, **kwargs上强制规定参数的调用约定

      首先我们要知道任何关于函数调用签名的问题,都和inspect模块有着关系   这个知识点涉及到两个类:               Signature、               Parameter创建一个签名对象,这是个重点 1 from inspect import Signature, Parameter 2 3 params = [Parame…

    Python开发 2023年4月2日
    00
  • __call__用法简谈

      python一切皆对象,从是否可调用层面讲,对象又可以分为可调用对象、不可调用对象 在本篇中,类中实现__call__双下方法,即将该类的实例变为可调用对象   普通类未实现__call__的方法,实例是不可调用的,先看 1 class Valley: 2 … 3 4 5 if __name__ == ‘__main__’: 6 v = Valley…

    Python开发 2023年4月2日
    00
  • 装饰器的多种实现方式

    一、基于函数实现   1、嵌套函数   代码实现: 1 from functools import wraps 2 3 4 def decorator(param): 5 def wrapper(func): 6 @wraps(func) 7 def verify(*args, **kwargs): 8 if param == ‘g’: 9 print(“&…

    Python开发 2023年4月2日
    00
  • __slots__

      在类的层次上定义时,python给实例采用一种更加紧凑的内部表示来管理属性,而非字典,这样,我们只被允许访问__slots__内部的属性   这样定义会带来两点好处,然后具体的实践我在工作中目前运用的还很少,后面如果发现还有什么坑,我再来补充 1、创建大量实例时节省内存 2、访问属性快 1 class Valley: 2 __slots__ = “nam…

    Python开发 2023年4月2日
    00
  • 编程思想

    三大编程思想:   POP:面向过程编程(Procedure Oriented Programming)   OOP:面向对象编程(Object Oriented Programming)   AOP:面向切面编程(Aspect Oriented Programming) 以下大部分内容引用腾讯云一位笔者,我也是进一步了解纯记录之目的。 POP ​   面向…

    Python开发 2023年4月2日
    00
  • 猴子补丁

    作用:随时修改代码   (在函数或类定义完成之后,再去修改函数的实现过程) “””类似猴子补丁在函数定义好之后,再去更改他的行为”””import typesclass Valley: def func(self): return “等待宣告”def common(self): return “只有永不遏制的奋斗”if __name__ == ‘__main…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部