我试图避免在两个类中重复代码,我已经测试了下面的代码片段,并且它可以工作,我想知道这是一个好的做法还是应该考虑使用继承。在这种情况下,这种方法有什么特别错误的地方吗?你知道吗
def do_something_with_self(obj):
print 'Hello, I was called from %s' % obj.name
class A(object):
name = "Class A"
def do_something(self):
do_something_with_self(self)
class B(object):
name = "Class B"
def do_something(self):
do_something_with_self(self)
if __name__ == '__main__':
a = A()
b = B()
a.do_something()
b.do_something()
如果情况需要,这是一个好的做法。有时,一个对象需要传递给一个函数,这个函数可以处理该类型的对象,而不是该类型对象的方法,这就是方法。例如,您的对象可能有一个包含对象的
dir()
的日志函数dir(self)
就是这样做的。你知道吗但是,如果
A
和B
实际上都是同一类的对象(比如Letter
),我建议使用继承。你知道吗这是个好习惯。一般来说,在继承和另一种简单的代码共享机制之间进行选择时,应该避免继承。你知道吗
相关问题 更多 >
编程相关推荐