- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
class NumFactory:
def __init__(self, n):
self.val = n
def timesTwo(self):
self.val *= 2
def plusTwo(self):
self.val += 2
f = NumFactory(2)
for m in dir(f):
mthd = getattr(f,m)
if callable(mthd):
mthd()
print f.val
http://www.mypythonquiz.com
Я, как сишник, сказал бы, что UB. Разве dir гарантирует какой-то определённый порядок?
Ну и вообще самая идея вызывать всё подряд какая-то упоротая... Этот код же и __init__ вызовет (и все методы object'а, если они там есть?), а там параметров не хватит.
P.S. Про object я нагнал, ибо по print f.val это явно второй питон и олд-стайл класс унаследованный от нихуя.
https://github.com/python/cpython/blob/master/Objects/object.c#L1335
1. Есть реализация питона (назовём её X), на которую могут опираться те, кто создают свою.
1.1. Если в X есть странные моменты, не описанные в стандарте питона, то их требуется реализовать у себя (например, сортировку того, что по стандарту не должно быть отсортировано).
2. X создана лишь для того, чтобы показать возможности программиста.
2.1. Если в X есть некоторая фича Y, которую программист считает сложнореализуемой или предполагает её нереализуемость, то программист, смотря на реализацию Y, понимает, что Y вполне реализуема.
Автор комментария надеялся пополнить свою коллекцию фактов о питоне, получив комментарии насчёт правдивости этих утверждений.