Pull to refresh
6
0
Send message

Почему вы так решили?

Иногда говорят не протоколы, а архитектурные стили, но тут на любителя

REST это именно стиль для создания API - рекомендации. А SOAP уже полноценный протокол.

Спасибо за пример, что метаклассы действительно можно создавать динамически. Поправлю в статье. Можно ли использовать в статье ваши слова о том, что можно управлять поведением класса разными способами?

Да, вы правы, здесь вообще лучше убрать упоминание о классах. Имелось в виду, что если функция isinstance возвращает True, то это еще не говорит о том, что первый объект экземпляр второго.

Очевидно что d нельзя создать с помощью только класса Animal, это его наследник.

Вы, верно, ошиблись. d не наследник Animal. Dog наследник Animal как я понял. И тут вы показали пример, о котором говорю и я. isinstance возвращает True, но второй аргумент не порождает первый.

isinstance не отвечает на вопрос "кто кого инстанцирует"(!)

В статье не было так написано. Я наоборот писал следующее:

Хотя если дословно переводить название функции (является экземпляром/есть экземпляр) ... При этом будет ошибкой как в наследовании сказать, что type порождает объекты целого типа ...

И я специально обозначил, что эта схема довольно условна. Говорится только о том, что и в каком порядке порождает объекты.

Не понял это:

он отвечает на вопрос ... "может ли А быть интерпретировано как экземпляр класса B" .

И что вы действительно думаете, что int может интерпретироваться как экземпляр object? int наследник object и не более.

А про какой вы язык говорите? Если объяснять как дело обстоит в питоне, то можно привести следующий код:

>>> class MyClass:
    	class_attribute = "Hello"

    	@classmethod
    	def class_method(cls):
    		print("This is a class method")

    	def instance_method(self):
    		print("This is an instance method")

		
>>> MyClass.class_attribute
'Hello'
>>> MyClass.class_method()
This is a class method
>>> MyClass.instance_method(object)
This is an instance method

У нас нет экземпляра, но мы можем получить доступ как к полям, так и методам класса. И даже к методам экземпляра (на это указывает параметр self), однако надо передать явно ссылку, потому что когда метод экземпляра вызывает от экземпляра, то в него автоматически (неявно) передается ссылка на этот объект. Здесь, для работы функции, ссылка не важна и передаем ее просто для того, чтобы у нас не поднялось исключение.

Насколько метаклассы эффективны? Сами по себе или в контексте их использования где-то в коде? Конечно, если можно их не использовать, то лучше поискать аналог без них. Потому что они, как минимум, усложняют читабельность.

Да, экземпляр класса - это инстанс этого класса. Что вы подразумеваете под бестелестностью? То, что у него нет ни полей, ни методов? Это не так. Все классы наследуются как минимум от object и обладают его атрибутами. Самое простое это магический метод __init__, а из полей можно привести в пример переменную __doc__. А экземпляры класса никак не влияют на его атрибуты.

Information

Rating
Does not participate
Registered
Activity

Specialization

Specialist
Python