Уведомления

Группа в Telegram: @pythonsu

#1 Март 28, 2018 10:22:18

spikejke
Зарегистрирован: 2018-02-12
Сообщения: 42
Репутация: +  5  -
Профиль   Отправить e-mail  

Дескрипторы

Доообрый день , ломаю голову над дескрипторами

 class Property:
	def __init__(self , func):
		self.func = func
	def __get__(self, obj , obj_type=None):
		if obj is None:
			return self
		return self.func(obj)
 class Class:
	@Property
	def somefunc(self):
		return 'value'
Объясните пожалуйста , что передаётся в return self.func([obj) , а именно в obj

Офлайн

#2 Март 28, 2018 13:26:46

scidam
Зарегистрирован: 2016-06-15
Сообщения: 288
Репутация: +  35  -
Профиль   Отправить e-mail  

Дескрипторы

Если не читать документацию, можно поступить следующим образом (добавить print):

  class Property:
	def __init__(self , func):
		self.func = func
	def __get__(self, obj , obj_type=None):
                print("I am the object:", obj)  # show info about the object
		if obj is None:
			return self
		return self.func(obj)
 class Class:
	@Property
	def somefunc(self):
		return 'value'
x = Class()
x.somefunc

Откуда можно будет сделать вывод, что obj – это x (instance of Class). В документации, однако, это написано

Офлайн

#3 Март 28, 2018 13:47:30

spikejke
Зарегистрирован: 2018-02-12
Сообщения: 42
Репутация: +  5  -
Профиль   Отправить e-mail  

Дескрипторы

scidam
Если не читать документацию, можно поступить следующим образом (добавить print):
Спасибо , понял спустя 30 минут как написал пост.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version