class A():
def __init__(self):
pass
a = A()
当我们实例化一个类时,该类的哪一部分负责创建该对象,是 init method()吗?
或者当我们执行A()时会发生什么?
另外,当我们创建一个类的多个对象时,如何确保这两个对象都指向不同的内存位置?
答案 0 :(得分:0)
即使您键入此内容,该类也会创建。
class A:
pass
a = A()
__init__
就像一个构造函数,当您创建类实例时会调用它。
现在,当您制作多个同一个类的对象时,它们都将分别保存在内存中。
例如
class A:
pass
a = A()
b = A()
print( a == b )
print( a, b )
输出
False
<__main__.A object at 0x1049a4898> <__main__.A object at 0x1049a4710>
打印第一条语句时,它将打印False
。
如果从第二个打印语句中比较a
和b
的两个对象,则可以看出它们是不相同的。
答案 1 :(得分:0)
在下面的类中,__init__
被称为构造函数,在实例化该类的对象时被调用。
class A():
def __init__(self):
print("creating")
a = A()
#creating
当您创建两个相同类的对象时,它们都将引用不同的内存位置,如下所示
a1 = A()
a2 = A()
print(a1)
print(a2)
<__main__.A object at 0x108ea6f98>
<__main__.A object at 0x108ea6f28>
两个对象都指向不同的存储位置0x108ea6f98
和0x108ea6f28
您还可以检查其他id个也不同的对象
print(id(a1))
print(id(a2))
#4529184552
#4529329264