class ClassName(object):
"""
"""
def __init__(self, foo, bar):
"""
"""
self.foo = foo # read-write property
self.bar = bar # simple attribute
def _set_foo(self, value):
self._foo = value
def _get_foo(self):
return self._foo
foo = property(_get_foo, _set_foo)
a = ClassName(1,2)
#a._set_foo(3)
print a._get_foo()
When I print a._get_foo() the function _get_foo prints the variable self._foo .
But where does it come from?
self._foo and self.foo are different, aren’t they?
EDIT: The problem is that I still not understand what property does. Give me some time.
Docs for
propertyexplain how it’s supposed to be used. There is no difference between these lines:and
You’re also not supposed to call setters and getters manually.
eta: if you don’t understand what
propertydoes after looking at the examples provided in the docs and reading our answers, you perhaps should just abstain from using it. It really is not the most essential of Python’s features. You might want to start with a simpler example, which is easy to understand: