<gh_stars>1000+
"""
This class is inspired by the Black Knight scene in the movie
"Monty Python and the Holy Grail", where <NAME> fights the
Black Knight, slicing off his arms and legs, but the knight
refuses to concede defeat.

# BEGIN BLACK_KNIGHT_DEMO
    >>> knight = BlackKnight()
    >>> knight.member
    next member is:
    'an arm'
    >>> del knight.member
    BLACK KNIGHT (loses an arm)
    -- 'Tis but a scratch.
    >>> del knight.member
    BLACK KNIGHT (loses another arm)
    -- It's just a flesh wound.
    >>> del knight.member
    BLACK KNIGHT (loses a leg)
    -- I'm invincible!
    >>> del knight.member
    BLACK KNIGHT (loses another leg)
    -- All right, we'll call it a draw.

# END BLACK_KNIGHT_DEMO
"""

# BEGIN BLACK_KNIGHT
class BlackKnight:

    def __init__(self):
        self.members = ['an arm', 'another arm',
                        'a leg', 'another leg']
        self.phrases = ["'Tis but a scratch.",
                        "It's just a flesh wound.",
                        "I'm invincible!",
                        "All right, we'll call it a draw."]

    @property
    def member(self):
        print('next member is:')
        return self.members[0]

    @member.deleter
    def member(self):
        text = 'BLACK KNIGHT (loses {})\n-- {}'
        print(text.format(self.members.pop(0), self.phrases.pop(0)))
# END BLACK_KNIGHT

"""
This class is inspired by the Black Knight scene in the movie
"Monty Python and the Holy Grail", where <NAME> fights the
Black Knight, slicing off his arms and legs, but the knight
refuses to concede defeat.

# BEGIN BLACK_KNIGHT_DEMO
    >>> knight = BlackKnight()
    >>> knight.member
    next member is:
    'an arm'
    >>> del knight.member
    BLACK KNIGHT (loses an arm)
    -- 'Tis but a scratch.
    >>> del knight.member
    BLACK KNIGHT (loses another arm)
    -- It's just a flesh wound.
    >>> del knight.member
    BLACK KNIGHT (loses a leg)
    -- I'm invincible!
    >>> del knight.member
    BLACK KNIGHT (loses another leg)
    -- All right, we'll call it a draw.

# END BLACK_KNIGHT_DEMO
"""

# BEGIN BLACK_KNIGHT
class BlackKnight:

    def __init__(self):
        self.members = ['an arm', 'another arm',
                        'a leg', 'another leg']
        self.phrases = ["'Tis but a scratch.",
                        "It's just a flesh wound.",
                        "I'm invincible!",
                        "All right, we'll call it a draw."]

    @property
    def member(self):
        print('next member is:')
        return self.members[0]

    @member.deleter
    def member(self):
        text = 'BLACK KNIGHT (loses {})\n-- {}'
        print(text.format(self.members.pop(0), self.phrases.pop(0)))
# END BLACK_KNIGHT
This class is inspired by the Black Knight scene in the movie "Monty Python and the Holy Grail", where <NAME> fights the Black Knight, slicing off his arms and legs, but the knight refuses to concede defeat.  # BEGIN BLACK_KNIGHT_DEMO     >>> knight = BlackKnight()     >>> knight.member     next member is:     'an arm'     >>> del knight.member     BLACK KNIGHT (loses an arm)     -- 'Tis but a scratch.     >>> del knight.member     BLACK KNIGHT (loses another arm)     -- It's just a flesh wound.     >>> del knight.member     BLACK KNIGHT (loses a leg)     -- I'm invincible!     >>> del knight.member     BLACK KNIGHT (loses another leg)     -- All right, we'll call it a draw.  # END BLACK_KNIGHT_DEMO # BEGIN BLACK_KNIGHT # END BLACK_KNIGHT