Я вызываю конструктор в ClassA и хочу, чтобы результирующий объект был другого класса (ClassB), если выполнено определенное условие. Я попытался заменить первый аргумент на __init __() ( "self" в примере ниже) в __init __(), но он, похоже, не делает того, что я хочу.
в основном:
import ClassA
my_obj = ClassA.ClassA(500)
# unfortunately, my_obj is a ClassA, but I want a ClassB!
в ClassA/__ init __. py:
import ClassB
class ClassA:
def __init__(self,theirnumber):
if(theirnumber > 10):
# all big numbers should be ClassB objects:
self = ClassB.ClassB(theirnumber)
return
else:
# numbers under 10 are ok in ClassA.
return
в ClassB/__ init __. py:
class ClassB:
pass