Hi

In python courses I read, it is explained that

@decor
def f():
   pass

is equivalent to:

def f():
   pass

f = decor(f)

But that's not always true. See this code

class Temperature:
def __init__(self):
       self.value = 0

#  @property
def celsius(self): return self.value celsius = property(celsius) # @celsius.setter def celsius(self, value): <-- overwrites previous celsius
       self.value = value

   celsius = celsius.setter(celsius)     <-- error here

When you define the setter function named celsius, it overwrites the previous property object also named celsius ...
and it fails:

celsius = celsius.setter(celsius)
AttributeError: 'function' object has no attribute 'setter'

any comment ?

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to