python - 这个 Code Pattern 有什么意义?

标签 python

我试图为 tk 扩展创建一个 python 包装器,所以我查看了 Tkinter.py 来学习如何做。

在查看该文件时,我发现以下模式出现了很多次:定义了一个内部方法(由方法名称中的前导“_”提示),然后定义了一个公共(public)方法作为内部方法方法。

我想知道这样做有什么好处。

例如,在 Misc 类的代码中:

def _register(self, func, subst=None, needcleanup=1):
    # doc string and implementations is removed since it's not relevant
register = _register

谢谢。

最佳答案

有时,您可能想要更改方法的行为。例如,我可以这样做(假设在 Misc 类中):

def _another_register(self, func, subst=None, needcleanup=1):
    ...

def change_register(self):
    self.register = self._another_register

def restore_register(self):
    self.register = self._register

这是一种无需子类化即可更改某些代码片段行为的非常方便的方法(但通常不建议在类本身之外执行此类操作)。

关于python - 这个 Code Pattern 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1116693/

相关文章:

python - 如何在python中删除数组中的重复元素并保持顺序不变?

python - 如何使用 matplotlib 读取 32 位整数图像?

python - ipython和python之间的输出差异

python - Flask-登录文档 : LoginForm()

Python 事件循环不能与 stdin 一起正常工作

python - 在Python中用正则表达式替换模式的一部分

python - 使用 Pytorch 安装 Open3d-Ml(在 MacO 上)

python - 为什么 Python 在创建实例时不调用实例方法 __init__() 而是调用类提供的 __init__() ?

python - Numpy dot 对对称乘法太聪明了

python - python中是否存在 "Find-Replace whole word only"?