1

次のシナリオでコードの重複を保存する方法は?

sayABは、共通の機能を持つ 2 つのクラスです (say)name

class A(object):
    name = 'foo'

    @property
    def name(self):  # the common function
        return self.name

同様にB

class B(object):
    name = 'bar'

    @property
    def name(self):
        return self.name

1 つの方法は、両方が継承するクラスを作成し、そこで定義するnameことです。

良い代替案はありますか?

4

5 に答える 5

1

継承を避けることに本当に決めている場合は、いずれかのクラスの外で関数を定義するだけです。

def get_name(object):
    return object.name
于 2013-07-16T03:15:56.173 に答える
0

BにAから継承させることができない理由はありますか?

class B(A):
    name = 'bar'
于 2013-07-16T03:09:35.240 に答える