python new和init的区别
时间: 2023-04-16 09:01:54 浏览: 76
Python中,new和init都是构造函数,但是它们的作用不同。
new是一个静态方法,用于创建一个类的实例。它的作用是在内存中为对象分配空间,并返回一个指向该对象的引用。new方法通常用于自定义对象的创建过程,比如单例模式、工厂模式等。
init是一个实例方法,用于初始化一个类的实例。它的作用是在对象创建后,对对象进行初始化操作,比如设置属性、调用其他方法等。init方法通常用于初始化对象的状态,以便对象能够正常工作。
因此,new和init的区别在于,new是用于创建对象的,而init是用于初始化对象的。在Python中,通常情况下我们只需要实现init方法即可,因为对象的创建过程已经由Python内部实现了。
相关问题
python中new和init的区别
`__new__` 方法用于在创建对象时分配内存空间,并返回对象的引用。而 `__init__` 方法则在 `__new__` 方法返回的对象上进行初始化,也就是设置对象的初始状态。
简单来说,`__new__` 方法是用来创建对象的,而 `__init__` 方法是用来初始化对象的。
python new super init
在Python中,`super()`函数用于调用父类的方法。它经常与`__init__()`方法一起使用以确保子类在初始化时也执行父类的初始化。
假设我们有一个子类 `Child` 继承自父类 `Parent`,而且我们想在子类的`__init__()`方法中同时调用父类的`__init__()`方法,可以按照以下方式使用`super()`函数:
```python
class Parent:
def __init__(self):
print("Parent class initialized")
class Child(Parent):
def __init__(self):
super().__init__() # 调用父类的初始化方法
print("Child class initialized")
```
在上述例子中,当我们创建一个 `Child` 类的实例时,它会首先调用父类 `Parent` 的`__init__()`方法,然后再执行子类 `Child` 的`__init__()`方法。这样可以确保子类在初始化时也执行了父类的初始化操作。
注意,`super()`函数可以用于多重继承情况下,以按照正确的顺序调用所有父类的方法。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)