mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
18 lines
578 B
Python
18 lines
578 B
Python
# Copyright 2014 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
|
|
# pylint: disable=C0301
|
|
# Based on/taken from
|
|
# http://code.activestate.com/recipes/578231-probably-the-fastest-memoization-decorator-in-the-/
|
|
# (with cosmetic changes).
|
|
# pylint: enable=C0301
|
|
def memoize(f):
|
|
"""Memoization decorator for a function taking a single argument."""
|
|
class Memoize(dict):
|
|
def __missing__(self, key):
|
|
rv = self[key] = f(key)
|
|
return rv
|
|
return Memoize().__getitem__
|