在实用程序模块中使用lru_cache
时,在修饰方法并从两个不同的类实例进行调用后,我发现cache_info()
每次调用修饰的方法时仅显示一个命中。 / p>
awsUtils.py :
@lru_cache(maxsize=32)
def getRdsDetailsCached(name, region):
return getRdsDetails(name, region):
def getRdsDetails(name, region):
client = boto3.client('rds', region)
response = client.describe_db_instances(DBInstanceIdentifier=name,)
return response['DBInstances']
Replication.py
class Replication(ActionBase):
def __init__(self, **entries):
super().__init__(**entries)
self.rdsDetails = awsUtils.getRdsDetailsCache('my-db', 'us-west-2')
Postgress.py
class Postgress(DependencyBase):
def __init__(self, **entries):
super().__init__(**entries)
self.rdsDetails = awsUtils.getRdsDetailsCache('my-db', 'us-west-2')
初始化以上两个类时,我希望第一个实例调用awsUtils.getRdsDetailsCache
会创建一个缓存,而其他任何实例都将重用该缓存。但是实际结果是每个结果均显示命中数为1。