本文主要是介绍实现一个带有存储状态的Python函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文简单的介绍一下,如果通过Python的类来实现一个带有存储状态的Python函数,比如这个函数可以记录自己的调用次数等。
实现的方法主要是通过类的__new__
方法来让类在初始化之前就返回一个自定义的内容,也就是函数的执行结果,同时,在__new__
方法也可以访问类的存储状态。下面我们看一下代码
class func_with_state:_count = 0def __new__(cls, *sub, **kwargs):cls._count += 1print(*sub, **kwargs)
代码主要就是把__new__
方法作为函数的入口,并且可以在这个方法里访问和操作类的属性,从而就通过一个类的来模拟了一个带有状态的函数。这个函数实际的使用方式大概是这样的
>>> func_with_state()>>> func_with_state('test')
test
>>> func_with_state._count
2
看见看到函数的调用次数就被记录在了._count
属性中。
当然,只有在比较特殊的情况下才需要使用这样的方式,毕竟这样隐藏了很多状态,比较容易带来一些混乱。
这篇关于实现一个带有存储状态的Python函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!