-1

从架构的角度来看,这个例子可能有什么问题:

class Base(object):
    def say_hello(self):
        self.hello()

class Child1(Base):
    def hello(self):
        print 'Hello child 1'

class Child2(Base):
    def hello(self):
        print 'Hello child 2'

c = Child1()
c.say_hello()
4

4 回答 4

2

唯一的问题say_hello是没有意义:你应该放弃它,hello()直接使用。 say_hello没有给你任何东西。

于 2013-02-04T13:54:49.437 回答
1

基类没有hello方法;可能导致say_hello破裂。不需要hello在子类中实现,但话又说回来:Python 不会介意你在脚下开枪,那只是你的问题。

于 2013-02-04T13:54:57.037 回答
0

Child2已过时-您从不调用它,Base隐式引用子函数,并且say_hello是多余的-除了 call 之外,它什么也不做hello

另外-您要求SO为您回答面试问题,这可能被认为是不好的形式。

于 2013-02-04T13:55:07.257 回答
0

假设这只是一个简化的示例,该方法没有任何问题。此外,它还有一个名字:模板方法

于 2013-02-04T16:24:57.417 回答