Examveda

What will be the output of the following Python code?
class Demo:
    def __new__(self):
        self.__init__(self)
        print("Demo's __new__() invoked")
    def __init__(self):
        print("Demo's __init__() invoked")
class Derived_Demo(Demo):
    def __new__(self):
        print("Derived_Demo's __new__() invoked")
    def __init__(self):
        print("Derived_Demo's __init__() invoked")
def main():
    obj1 = Derived_Demo()
    obj2 = Demo()
main()

A. Derived_Demo’s __init__() invoked
Derived_Demo's __new__() invoked
Demo's __init__() invoked
Demo's __new__() invoked

B. Derived_Demo's __new__() invoked
Demo's __init__() invoked
Demo's __new__() invoked

C. Derived_Demo's __new__() invoked
Demo's __new__() invoked

D. Derived_Demo’s __init__() invoked
Demo's __init__() invoked

Answer: Option B


Join The Discussion

Related Questions on Concept of Object Oriented Programs in Python