我不完全确定如何表达标题。如果觉得不合理的话会更改..
我最近遇到了方法链,我真的很喜欢用它来完成一些任务。
然后我注意到我在每个方法的末尾调用了一个特定的方法,我在想一旦到达链的末尾是否可以强制执行该方法?
事实上,无论链接如何,是否可以仅使用普通的类方法来执行类似的操作?
例如:
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/