ну глупости какие-то просто из-за незнания питона понаписали.
class TestClass:
data = bytearray(1)
> Однако при выводе все значения байтового массива оказываются одинаковыми, что довольно странно и неожиданно.
Ну так они ссылаются на
TestClass.dataПо этому изменяются они по ССЫЛКЕ..а еще в данном случае у инстансов будет пустой неймспейс, а аттрибуты и прочее тянутся как раз с базового (описывающего) класса:
id(
a.data) == id(
b.data) == id(
TestClass.data)
class IntTestClass:
number = 0
a = IntTestClass()
a.number = 1
b = IntTestClass()
b.number = 2
print( a.number )
print( b.number )
print( IntTestClass.number )
а вот тут уже состояние объекта изменяется, потому что был создан новый инстанс и значение аттрибута было задано динамически. И если вывести их неймспейс, то там уже будет название аттрибута и его значение.
Автор просто не знает про то, что питон динамически типизирован, что в питоне ВСЕ-объект, и про то, что классы могут быть использованы как callable-объекты (а еще про некоторые "тонкости" аля неймпейсов).
Про указатели так вообще молчу.
По 6 пункту это просто придирка к тому, что язык имеет свою реализацию и не утилизирует контекст (а еще собственно зен питона говорит, что явное лучше неявного...)
Про "отсутствие" строгой типизации вообще бред, питон строго-динамически типизирован..