Да, это плохая практика. Это может не помешать вам сразу, но все же ухудшает читабельность кода.
Для выборочной цитаты из PEP20:
Красиво лучше, чем безобразно.
Простое лучше, чем сложное.
Читаемость имеет значение.
Если реализацию сложно объяснить, это плохая идея.
Видя вызов myobject.dict()
, было бы естественно предположить, что он вернет myobject.__dict__
или что myobject.id()
вернет то же, что и id(myobject)
Они могут узнать, что они не правы; но это потребует времени и усилий и, вероятно, приведет к некоторым ошибкам, пока они это поймут. Вызов вашего атрибута myobject.object_id_number
намного дольше, но проясняет, что он отличается от id(myobject)