A Read-Only property Still Blocks Writes

class Temperature:
    def __init__(self, celsius):
        self._celsius = celsius

    @property
    def fahrenheit(self):
        return self._celsius * 9 / 5 + 32

t = Temperature(0)
print(t.fahrenheit)
t.fahrenheit = 100

What happens on the last line?

A

Nothing happens; the assignment is silently ignored because properties without an explicit setter are treated as read-only constants

B

Raises AttributeError, because fahrenheit has no setter

C

100 is written into t.dict['fahrenheit'], and later reads of t.fahrenheit return 100 instead of running the getter

D

Raises TypeError: 'property' object is not callable, because fahrenheit was never declared with a setter method