一、类对象与实例对象
Python中对象分两种
- 类对象:声明类时会默认有一个类对象,这个对象的名与类名相同。
- 实例对象:通过 变量名 = 类名(形参列表) 这样的语法创建的对象称为实例对象
二、实现过程及内存分配
- 声明一个类对象后会开辟一块内存空间,通过类对象访问这块内存空间,这块内存空间中含有创建时声明的所有成员和类的内置成员。
- 创建一个实例对象会开辟一块内存空间,通过实例对象访问这块内存空间。
例子:
class Cat(object):
#类属性
name="吉姆"
#方法
def eat(self):
print("%s在吃鱼"%self.name)
def drunk(self,name):
self.name=name ##实例属性
print("%s在喝水" % self.name)
tumao=Cat()
lanmao=Cat()
这段代码执行过程可以理解如下:
1、类对象创建时在内存中开辟一块空间,用来储存创建的类对象,Cat指向该内存地址,该类对象中包含了类属性和方法;
2、实例对象创建时同样会在内存中开辟一块空间,用来储存创建的实例对象,tumao和lanmao分别指向不同的内存地址。在该实例对象中有一个特殊的属性能够帮助实例对象指向类对象;
当Python在创建实例对象后自动执行init方法时,给该实例对象传递一些自定义/默认的属性(实例属性);
没有初始化init方法,同时没有传入参数时,实例对象中的内容仅包含特殊属性。