添加方便的静态/类方法,而不删除或破坏现有的实现

2021-01-21 23:16:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经掌握了OOP范式的窍门,我想改进的是制作可扩展和可重用代码的艺术。从理论上讲,我有一个已经被广泛使用的实用程序类的Python库。为了便于使用,我想向特定类添加一些带有相同代码的方便静态方法,但我不想破坏我对该库的现有使用。推荐的实现和命名新类方法的方法是什么?我有几个猜测如下:

1)使用重载方法名来保持清晰?Python不是一个很好的例子,但是在其他语言中,比如Java?例如:

class Cat(object):
    def __init__(self, name):
        self.name = name

    def meow(self):
        meow(self.name)

    @staticmethod
    def meow(name): # <-- Granted, Python doesn't overload method names
        print "{} meowed cutely!".format(name)

2)使用一个不同的,也许语义较少的静态方法名?旧名不能改,所以。。。在我看来,对于大型项目来说,这可能会失控,因为同一方法的静态版本只有一堆非语义名称。示例:

^{2}$

我认为直接复制代码是个坏主意。走哪条路?还是有更好的设计模式?一些我不知道的Python特有的东西?我想确保我的代码在将来不会一文不值;并为将来的项目制作一些可扩展的个人库。在