python - 强制运行特定方法

标签 python python-3.x method-chaining

我不完全确定如何表达标题。如果觉得不合理的话会更改..

我最近遇到了方法链,我真的很喜欢用它来完成一些任务。

然后我注意到我在每个方法的末尾调用了一个特定的方法,我在想一旦到达链的末尾是否可以强制执行该方法?

事实上,无论链接如何,是否可以仅使用普通的类方法来执行类似的操作?

例如:

class Alphabet:

    def _use_me(self):
        pass

    def a(self):
        # do some stuff
        self._use_me()
        return self

    def b(self):
        # do some stuff
        self._use_me()
        return self

    def c(self):
        # do some stuff
        self._use_me()
        return self

我想知道是否可以在默认情况下仅运行 self._use_me(),而不是在每个方法的末尾调用 self._use_me()

也许我什至认为这是错误的,应该改变实现?欢迎提出建议。

我找不到任何与此相关的信息 - 但这可能只是由于缺乏知识并且没有在 Google 上使用正确的搜索参数。

最佳答案

context managers我想到的是:

class Alphabet:

    def __init__(self):
        return 
    
    def __enter__(self):
        return self
    
    def __exit__(self, type, value, traceback):
        self._use_me()
        print('exit')

    
    def _use_me(self):
        print('calling _use_me')

    def a(self):
        print('a')

    def b(self):
        print('b')

    def c(self):
        print('c')

# calling it:
with Alphabet() as a:
    a.a()

关于python - 强制运行特定方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71603007/

相关文章:

java - 过度使用 Java 中的方法链

javascript - JS – 三元运算符,以避免条件中的过度链接。是否可以?

python - 在python中可以进行字符串到字典的转换吗?

python - 如何使用 Boto 使 dynamoDB 中的 key 过期?

python - 找不到 Python 模块的正确目录

python - 读取文件并打印前两行和最后两行的脚本

c# - C# 中的方法链和异常

python - 为什么锯齿状数组中第二个索引的负值在 Python 中不起作用?

python - 格式化日期时间变量将缺失的时间值作为 00 :00:00. 使用 Python

python - 欧式距离的高效计算