[PYTHON] Abhängigkeiten in das Modul einfügen

Im Fall von Python kann die Abhängigkeit leicht umgekehrt werden, wenn sie für jedes Modul gut ist. person.py hängt nicht von der Implementierung von AbstractPerson ab.

person.py


class AbstractPerson:
    def say(self):
        raise NotImplementedError()


def talk_each():
    person_a = AbstractPerson()
    person_b = AbstractPerson()

    print(person_a.say())
    print(person_b.say())

Um eine Abhängigkeit in das person-Modul einzufügen, können Sie schreiben:

main.py


import person


class JapanesePerson:
    def say(self):
        return "Hallo"


class EnglishPerson:
    def say(self):
        return "Hi"


person.AbstractPerson = JapanesePerson
person.talk_each()
#Hallo
#Hallo
person.AbstractPerson = EnglishPerson
person.talk_each()
# Hi
# Hi

Es fühlt sich wirklich wie "Python" an.

Recommended Posts

Abhängigkeiten in das Modul einfügen