November 12th, 2015

404

чернодырное

Предположим, у нас есть левитирующая маленькая капля масла с единичным зарядом (как в экспериментах Милликена). Допустим, в вакуууме. Допустим, без вращения.

Мысленным образом сожмём эту каплю до диаметра меньше горизонта событий.

Что поменяется в экспериментальной установке? Будет ли заряженная пластина снизу ощущать ту же силу отталкивания, которую она испытывала с капелькой? Если да, то каким образом сила отталкивания выходит за пределы горизонта событий? Если нет, куда делся заряд и что такого случилось, что закон Кулона перестал выполняться?
404

Программистское

А вот сегодня у меня на работе был крайне интересный кейс, в котором "настоящий программист" мне объяснил как быть.

Есть класс, который имитирует списко-словарь (то есть список, но умеет искать по специальному значению как по ключу, отвечать на вопросы "in" в контексте ключа и т.д.). В качестве ключа хочет строку. В программе его кормят данными из двух мест - из конфига (откуда приходит строка) и списком инстансов, каждый из которых в качестве ключа использует инстанс более простого класса. Этот инстанс содержит в себе строку и всякое барахло для работы с ней.

И возникает проблема: объект из конфига и из "инстансов" не матчится, потому что одно строка, а другое инстанс.

Моё (неправильное) направление мысли было приводить к строке всё, что попадает в класс. Во всех местах. Выглядит это мягко говоря неаппетитно.

А мне сказали, что лучше сделать так, чтобы самый класс умел притворяться строкой. __cmp__, __hash__ и т.д.

И оно много лучше. Там же мне рассказали про делегацию, но я понял, что я не умею читать азбуку морзе на питоне:
sdoor.__class__.__bases__[0].__dict__['knock'].__get__(sdoor)
(http://lgiordani.com/blog/2014/08/20/python-3-oop-part-3-delegation-composition-and-inheritance/), так что вопрос плавно закрылся.

К чему это я?

К тому, что некоторые вещи очень тяжело своим собственным опытом учить. Точнее, дорого. Потому что если бы я по пути "всё приводить к строке" пошёл, то переделывать потом было бы адски тяжело.