Slide 35
Slide 35 text
class AbsoluteInteger:
def __set_name__(self, owner, name):
self.name = '_' + name
def __set__(self, instance, value):
setattr(instance, self.name, absolute_integer(value))
def __get__(self, instance, owner):
if not hasattr(instance, self.name):
return self
return getattr(instance, self.name)
def __delete__(self, instance):
if not hasattr(instance, self.name):
return
delattr(instance, self.name)
self = σΟεΫϦϓλʔ͕ొ͞Ε͍ͯΔΫϥεͷΞτϦϏϡʔτ (SomeClass.data1, SomeClass.data2)
instance = σΟεΫϦϓλʔ͕ొ͞Ε͍ͯΔΫϥεͷΠϯελϯε(var1, var2)
owner = σΟεΫϦϓλʔ͕ొ͞Ε͍ͯΔΫϥε(SomeClass)
>>> class SomeClass:
>>> data1 = AbsoluteInteger()
>>> data2 = AbsoluteInteger()
...
>>> var1 = SomeClass()
>>> var2 = SomeClass()
← SomeClass.data1.name, SomeClass.data2.name