Большинство вопросов о собеседовании при программировании бессмысленны. Особенно те, которые выяснили программисты.
Это частый случай, по крайней мере, согласно моим & amp; Мой опыт друзей, где надутый программист, спрашивает вас о хитрости, за которую он потратил недели на поиски. Самое смешное в этом то, что вы вернетесь домой и погуглите в течение минуты. Как будто они часто пытаются избить вас своим сложным оружием , вместо того, чтобы проверять, будете ли вы комплексным, прагматичным командным игроком для работы.
Подобная глупость в IMO возникает, когда вас спрашивают о высокодоступных основах, например: «Ой, подождите, позвольте мне посмотреть, можете ли вы использовать псевдокод этого insert_name_here
-алгоритма на листе бумаги (так! )». Мне действительно нужно помнить это при подаче заявления на работу по программированию высокого уровня? Должен ли я эффективно решать проблемы или головоломки?
type (obj)
и type .__ class __
не работают одинаково для классов старого стиля:
>>> class a(object):
... pass
...
>>> class b(a):
... pass
...
>>> class c:
... pass
...
>>> ai=a()
>>> bi=b()
>>> ci=c()
>>> type(ai) is ai.__class__
True
>>> type(bi) is bi.__class__
True
>>> type(ci) is ci.__class__
False
Классы старого стиля - это проблема, вздох:
>>> class old: pass
...
>>> x=old()
>>> type(x)
<type 'instance'>
>>> x.__class__
<class __main__.old at 0x6a150>
>>>
Не проблема в Python 3, поскольку все классы теперь в новом стиле; -).
В Python 2 класс имеет новый стиль, только если он наследуется от другого класса нового стиля (включая объект
и различные встроенные типы, такие как dict
, список
, set
, ...) или неявно или явно устанавливает __ метакласс __
в тип
.