No Data Descriptor

Геттер (__get__()) с аргументами:

  • instance = экземпляр класса с которого происходит обращение к свойству

  • owner_class = класс собственник

from time import time

class Epoch:
	# intance - экземпляр класса с которого происходит обращение к свойству
	# owner_class - класс собственник
	def __get__(self, instance, owner_class):
		return int(time())

class MyTime:
	epoch = Epoch()

m = MyTime()

print(m.epoch)
# 15984124424 - время в секундах
123456789101112131415

Можно использовать и обычный геттер на @property но в таком случае, будет возникать много повторяемого кода...

В этом случае поможет определение отдельного класса (No Data Descriptor) на основе дандер метода __get__ ()

Last updated

Was this helpful?