Skip to content

Instantly share code, notes, and snippets.

@TallJimbo
Last active May 17, 2017 19:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TallJimbo/fb97efc9f13afa2f55621d3e522a960f to your computer and use it in GitHub Desktop.
Save TallJimbo/fb97efc9f13afa2f55621d3e522a960f to your computer and use it in GitHub Desktop.
Testing how Python implements in-place binary operations on properties
class Member(object):
def __init__(self, value):
self.value = value
def __iadd__(self, value):
print("__iadd__")
self.value += value
return self
class Parent(object):
def __init__(self, value):
self.value = value
def getMember(self):
print("getMember")
return Member(self.value)
def setMember(self, member):
print("setMember")
self.value = member.value
member = property(getMember, setMember)
if __name__ == "__main__":
p = Parent(5)
p.member += 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment