File: LP6E/Chapter28/person-department.py

from person_10 import Person, Manager           # Example 28-10's classes

class Department:
    def __init__(self, *args):
        self.members = list(args)               # Manage an objects list

    def addMember(self, person):
        self.members.append(person)

    def giveRaises(self, percent):              # Apply methods to all objects
        for person in self.members:
            person.giveRaise(percent)

    def showAll(self):                          # Display all nested objects
        for person in self.members:
            print(person)

if __name__ == '__main__':
    bob = Person('Bob Smith')
    sue = Person('Sue Jones', job='dev', pay=100000)
    pat = Manager('Pat Jones', 50000)

    development = Department(bob, sue)          # Embed objects in a composite
    development.addMember(pat)
    development.giveRaises(.10)                 # Runs embedded objects' giveRaise
    development.showAll()                       # Runs embedded objects' __repr__



[Home page] Books Code Blog Python Author Train Find ©M.Lutz