Simulating a 'local static' variable in python

后端 未结 5 1212
盖世英雄少女心
盖世英雄少女心 2020-11-29 22:11

Consider the following code:

def CalcSomething(a):
    if CalcSomething._cache.has_key(a):
      return CalcSomething._cache[a]
    CalcSomething._cache[a]         


        
5条回答
  •  感情败类
    2020-11-29 22:17

    Turn it into a decorator.

    def static_var(var_name, initial_value):
        def _set_var(obj):
            setattr(obj, var_name, initial_value)
            return obj
        return _set_var
    
    @static_var("_cache", {})
    def CalcSomething(a):
        ...
    

提交回复
热议问题