# There's no java-like rule here # You can put class squirrel in a file called squirrel if you like, but you don't have to class squirrel: # These are class-level variables # "properties" # private: # Python doesn't have private name = "" age = 0 def __init__(self, name_param): self.name = name_param self.age = 0 # Don't really use print here # It's just to show what is going on print("A new squirrel! Name is ", self.name) def birthday(self): self.age += 1 print("It's ", self.name, "'s birthday! New age ", self.age) # Since Python doesn't have private, we don't need this def set_age(self, newage): self.age = newage class squirrel_collection: squirrels = [] place = 0 def add(self, squirrel): self.squirrels.append(squirrel) def birthday(self): for sq in self.squirrels: sq.birthday() def get_iterator(self): def iterator(): self.place += 1 if self.place >= len(self.squirrels): return None return self.squirrels[self.place] self.place = -1 return iterator