Python Magie
Verfasst: Samstag 11. Oktober 2014, 13:39
Hallo,
Ich habe im Open Source Code von PyDrive folgende Klasse gefunden, deren Objekte als Werten von Attributen verwendet wird.
Statt age = None wird in einer Klasse Person age = APIAttribute("age") definiert. Könnt ihr mir erklären wieso diese Klasse verwendet wird?
Ich habe im Open Source Code von PyDrive folgende Klasse gefunden, deren Objekte als Werten von Attributen verwendet wird.
Statt age = None wird in einer Klasse Person age = APIAttribute("age") definiert. Könnt ihr mir erklären wieso diese Klasse verwendet wird?
Code: Alles auswählen
class ApiAttribute(object):
"""A data descriptor that sets and returns values."""
def __init__(self, name):
"""Create an instance of ApiAttribute.
:param name: name of this attribute.
:type name: str.
"""
self.name = name
def __get__(self, obj, type=None):
"""Accesses value of this attribute."""
return obj.attr.get(self.name)
def __set__(self, obj, value):
"""Write value of this attribute."""
obj.attr[self.name] = value
if obj.dirty.get(self.name) is not None:
obj.dirty[self.name] = True
def __del__(self, obj):
"""Delete value of this attribute."""
del obj.attr[self.name]
if obj.dirty.get(self.name) is not None:
del obj.dirty[self.name]