我担任 Java 程序员已有 4.5 年了。现在我已经切换到 Python(主要原因是我现在是一名自由职业者并且我一个人工作)。我向我的客户提供源代码,有时我不得不激发我的设计选择。现在的问题。 我必须支持我的设计选择:
class Base(object):
def foo(self):
self.dosomethig(self.clsattr1)
self.dosomethig(self.clsattr2)
class Derived(Base):
clsattr1 = value1
clsattr2 = value2
基类总是意味着被扩展或派生。
我的客户(一名 Java 程序员)认为我的方法从 OO 的角度来看并不优雅。
他声称以下方法更好:
class Base(object):
def __init__(self, clsattr1, clsattr2):
self.clsattr1 = clsattr1
self.clsattr2 = clsattr2
def foo(self):
self.dosomethig(self.clsattr1)
self.dosomethig(self.clsattr2)
class Derived(Base):
def __init__(self):
super(Derived, self).__init__(value1, value2)
我意识到第二种方法比第一种方法优雅得多,但我告诉他 第一种方法更方便。我告诉他我没有看到任何问题,但他不相信。 第一种方法这么糟糕吗?为什么?
最佳答案
似乎没有任何区别。不要浪费你的时间和他争论——重构你的类并拿钱可能会更快。
关于Python 和 OO 编程(类属性和派生类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4754783/