用python创建对象并与其他对象分离

时间:2019-04-18 05:31:52

标签: python-3.x python-2.7 class oop object

class A():
    def __init__(self):
        pass

a = A()

当我们实例化一个类时,该类的哪一部分负责创建该对象,是 init method()吗?

或者当我们执行A()时会发生什么?

另外,当我们创建一个类的多个对象时,如何确保这两个对象都指向不同的内存位置?

2 个答案:

答案 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。 如果从第二个打印语句中比较ab的两个对象,则可以看出它们是不相同的。

答案 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>

两个对象都指向不同的存储位置0x108ea6f980x108ea6f28

您还可以检查其他id个也不同的对象

print(id(a1))
print(id(a2))
#4529184552
#4529329264