Форум сайта python.su
0
class A: def __new__(cls, *args): if (len(args) == 0): return super(A, cls).__new__(cls) if int(args[0]) < 5: return super(A, cls).__new__(cls) else: return 0 def __init__(self, n): n = n + 1 print('a ' + str(n)) B(n) class B(A): def __new__(cls, *args): return super(B, cls).__new__(cls) def __init__(self, n): n = n + 1 print('b ' + str(n)) try: # Почему если раскомментировать эту строку код выполняется - b 6 #A(n) # А если раскомментировать эту строку то ошибка ? - b 664error #super().__init__(n) except: print('error') a = A(0)
Отредактировано FishHook (Сен. 20, 2019 10:07:28)
Офлайн
294
http://python.su/forum/post/204427/
[code python][/code]
Офлайн
44
instances = [] class A: def __new__(cls, *args): instances.append(cls) print(len(instances)) if len(args) == 0: return super(A, cls).__new__(cls) if int(args[0]) < 5: return super(A, cls).__new__(cls) else: return 0 def __init__(self, n): n = n + 1 print('a ' + str(n)) B(n) class B(A): def __new__(cls, *args): return super(B, cls).__new__(cls) def __init__(self, n): n = n + 1 print('b ' + str(n)) try: # Почему если раскомментировать эту строку код выполняется - b 6 # A(n) # if int(args[0]) < 5: # А если раскомментировать эту строку то ошибка ? - b 664error # super().__init__(n) # тк бесконечная рекурсия except Exception as err: print(err) a = A(0)
и вставьте ссылку на его url Отредактировано AD0DE412 (Сен. 20, 2019 20:56:22)
Офлайн