写出下列程序的运行结果:class A: def__new__(self): self.__init__(self) print("A's__new__()invoked") def__init__(self): print("A's__init__()invoked") class B(A): def__new__(self): print("B's__new__()invoked") def__init__(self): print("B's__init__()invoked") def main(): b=B() a=A() main()
时间: 2023-08-07 17:27:26 浏览: 111
这段程序存在语法错误,正确的写法应该是:
```python
class A:
def __new__(self):
self.__init__()
print("A's __new__() invoked")
def __init__(self):
print("A's __init__() invoked")
class B(A):
def __new__(self):
print("B's __new__() invoked")
def __init__(self):
print("B's __init__() invoked")
def main():
b = B()
a = A()
main()
```
程序的运行结果是:
```
B's __new__() invoked
B's __init__() invoked
A's __new__() invoked
A's __init__() invoked
```
首先创建了一个 `B` 类的实例 `b`,调用了 `B` 类的 `__new__()` 方法和 `__init__()` 方法。`B` 类的 `__new__()` 方法仅仅打印了一句话,`B` 类的 `__init__()` 方法打印了一句话。
接着创建了一个 `A` 类的实例 `a`,调用了 `A` 类的 `__new__()` 方法和 `__init__()` 方法。`A` 类的 `__new__()` 方法调用了 `__init__()` 方法,打印了一句话,然后自己打印了一句话。
因此,程序的输出结果是:
```
B's __new__() invoked
B's __init__() invoked
A's __new__() invoked
A's __init__() invoked
```
阅读全文