Hi, In this piece of code:
class RefrigeratedShippingContainer(ShippingContainer): MAX_CELSIUS = 4.0 def __init__(self, owner_code, contents, celsius): super().__init__(owner_code, contents) if celsius > RefrigeratedShippingContainer.MAX_CELSIUS: raise ValueError("Temperature too hot!") self._celsius = celsius @staticmethod def _c_to_f(celsius): return celsius * 9/5 + 32 @staticmethod def _f_to_c(fahrenheit): return (fahrenheit - 32) * 5/9 @staticmethod def _make_bic_code(owner_code, serial): return iso6346.create(owner_code=owner_code, serial=str(serial).zfill(6), category='R') @property def celsius(self): return self._celsius @celsius.setter def celsius(self, value): if value > RefrigeratedShippingContainer.MAX_CELSIUS: raise ValueError("Temperature too hot!") self._celsius = value @property def fahrenheit(self): return RefrigeratedShippingContainer._c_to_f(self.celsius) @fahrenheit.setter def fahrenheit(self, value): self.celsius = RefrigeratedShippingContainer._f_to_c(value) If I call `_c_to_f`, `_f_to_c` methods on `self` instead of `RefrigeratedShippingContainer` class object, still it works. So what is the reason behind of this calling on the class object, instead class instance object? Thanks, Arup Rakshit a...@zeit.io -- https://mail.python.org/mailman/listinfo/python-list