Python:__init__不是构造函数:深入探究Python对象创建
Python:__init__不是构造函数:深入探究Python的对象创建过程
调整Python的构造函数以创建快速、内存高效的类
您知道__init__方法不是构造函数吗?但是,如果__init__不创建对象,那么是什么创建了对象呢?Python是如何创建对象的?Python是否有构造函数?
本文的目标是更好地理解Python如何创建对象,以便我们可以为实际应用进行操控。
首先,我们将深入探讨Python创建对象的内部机制。接下来,我们将运用这些知识,并通过一些实际示例讨论一些有趣的用例。让我们开始编码吧!
1. 理论:在Python中创建对象
在本部分中,我们将找出在您创建对象时,Python在背后做了什么。在下一部分中,我们将运用这些新知识并进行应用。
如何在Python中创建对象?
这应该很简单;您只需创建一个类的实例。或者,您可以创建一个新的内置类型,如str或int。在下面的代码中,我们创建了一个基本类的实例,它只包含一个__init__函数和一个say_hello方法:
class SimpleObject: greet_name:str def __init__(self, name:str): self.greet_name = name def say_hello(self) -> None: print(f"Hello {self.greet_name}!")my_instance = SimpleObject(name="bob")my_instance.say_hello()
请注意__init__方法。它接收一个name参数,并将其值存储在SimpleObject实例的greet_name属性上。这使得我们的实例保持了状态。
现在问题来了:为了保存状态,我们需要有能保存状态的东西。那么,__init__是从哪里获得这个对象的呢?
那么,__init__是构造函数吗?
答案是:从技术上讲,不是。构造函数实际上是创建新对象的;__init__方法仅负责设置对象的状态。它只是接收参数值,并将它们分配给类的属性,如greet_name。



