Editor

Classes and Objects: What Does This Print

What does this print? · Advanced · about 10 min

Read each short program and type exactly what it prints, with each printed line on its own line. If a program stops with an error, type the error's name, like TypeError.

Example

class Cat:
    legs = 4
print(Cat().legs)

prints

4
  1. Program 1

    class Dog:
        def __init__(self, name):
            self.name = name
        def speak(self):
            return self.name + " says woof"
    d = Dog("Rex")
    print(d.speak())
  2. Program 2

    class Counter:
        count = 0
    a = Counter()
    b = Counter()
    a.count = 5
    print(a.count, b.count, Counter.count)
  3. Program 3

    class Bag:
        items = []
        def add(self, x):
            self.items.append(x)
    a, b = Bag(), Bag()
    a.add(1)
    print(b.items)
  4. Program 4

    class A:
        def hello(self):
            return "A"
    class B(A):
        def hello(self):
            return "B+" + super().hello()
    print(B().hello(), A().hello())
  5. Program 5

    class Temp:
        def __init__(self, c):
            self.c = c
        def __str__(self):
            return f"{self.c} C"
        def __repr__(self):
            return f"Temp({self.c})"
    print(Temp(20), [Temp(5)])
  6. Program 6

    class Box:
        def size():
            return 3
    print(Box().size())
  7. Program 7

    class Square:
        side = 3
        @property
        def area(self):
            return self.side ** 2
    s = Square()
    s.side = 4
    print(s.area)
  8. Program 8

    class P:
        def __init__(self, v):
            self.v = v
    a, b = P(1), P(1)
    print(a == b, a.v == b.v)