Contents

ARST打卡第66周[66/521]

因为上周日晚骑已损坏的哈啰助力车遇到小坡飞出摔伤,右手舟状骨骨折,导致自己上周ARST打卡没有打

Algorithm

LeetCode/26_unique_删除排序数组中的重复项

Review

TED演讲:金钱能买来幸福吗?

这又是一个关于给予他人更加能收获感到幸福的故事

Tips

spec文件知识整理

Share

延迟加载配置项

有些时候我们需要对于一些常用变量提取到类变量,但是在__init__()的时候有些资源获取不到,这时我们就可以使用延迟加载,在第一个使用这个配置项的地方加载配置

非延迟加载

1
2
3
4
5
6
class XXXTask(task.Task):
    def __init__(self):
        self.node_client = NodeAgentClient(ip=self.__get_filestore_agent())

    def __get_filestore_agent(self):
        return clusterproxy.ClusterProxy().get_agent_work_ipaddr()

后来的延迟加载

1
2
3
4
5
6
7
8
9
class XXXTask(task.Task):
    def __init__():
        self._node_client = None

    @property
    def node_client(self):
        if not self._node_client:
            self._node_client = NodeAgentClient(ip=clusterproxy.ClusterProxy().get_agent_work_ipaddr())
        return self._node_client