Size: a a a

2021 June 08

AN

Aleksey Navnyko in SPb Python
Друзья, кто-нибудь знает ли в Кудрово или в Санкт-Петербурге магазин с мерчами, наклейками для программистов? Может быть такое продают в каких-нибудь книжных магазинах? Хочется в живую, а не через Интернет, прийти, посмотреть.
источник

SK

Sergio Keler in SPb Python
На выставку сходи любую, тусу посети более-менее официальную. Там обязательно будет фирма, что раздаёт наклейки.
источник

AN

Aleksey Navnyko in SPb Python
В том-то и дело что сейчас все айти-выставки и официальные встречи из-за пандемии отменены.
источник

SK

Sergio Keler in SPb Python
Я на прошлой неделе был и наклеечек набрал.
источник

SK

Sergio Keler in SPb Python
А нет, так нет. Куда спешить?
Не покупать же это...
источник
2021 June 09

RT

Roman Tsaregorodtsev in SPb Python
А почему стандартные классы в питоне hashable по умолчанию и при вызове hash(obj) возвращают hash(id(obj)), а при этом датаклассы по умолчанию не hashable и их нужно делать неизменяемыми (frozen=True) хотя для обычных классов это не требуется.

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

SK

Sergio Keler in SPb Python
А что думает по этому поводу Кальтенбрунер (зачёркнуто) авторы этого удивительного языка?
источник

RT

Roman Tsaregorodtsev in SPb Python
я чёт пытался погуглить ничего толкового не нашёл. Я если честно не очень понимаю на кой в датаклассах изощрённый хэш по каждому атрибуту, который даже не позволяет добавить нехешируемые атрибуты типа list

То есть это не сработает:
@dataclass(frozen=True)
class B:
   a: int
   b: list

hash(B(42, [1,2,3]))
Почему нельзя сделать завязку на id объекта как в обычных классах. Когда этого может оказаться недостаточно?
источник

A

Alexander in SPb Python
Почитай исходники
источник

A

Alexander in SPb Python
Наверняка это не просто так сделано
источник

DA

Dmitry Alimov in SPb Python
ну так специально, чтобы сам мог реализовать правильный способ сравнения датаклассов.
источник

DA

Dmitry Alimov in SPb Python
а завязавшись на id объекта не будет гарантии идентичности.
источник

RT

Roman Tsaregorodtsev in SPb Python
Но ведь сравнение это не хэшируемость
источник

p

pragus in SPb Python
Лучший способ сравнить объекты - сравнить хеши их компонентов
источник

DA

Dmitry Alimov in SPb Python
а зачем тогда тебе хэш?
источник

RT

Roman Tsaregorodtsev in SPb Python
Ну то есть хочешь сказать, что dataclass затыкают брешь в стандартных классах, где хэш сделан через id объекта?
источник

RT

Roman Tsaregorodtsev in SPb Python
например, чтобы в качестве ключа словаря положить
источник

DA

Dmitry Alimov in SPb Python
а там он для чего как думаешь?)
источник

DA

Dmitry Alimov in SPb Python
в том числе и для быстрого приблизитаельного сравнения
источник

DA

Dmitry Alimov in SPb Python
похоже на то,
для данных это очень важно.
источник