82.内存分析实例对象和类对象创建过程(重要)
我们以下面代码为例,分析整个创建过程,让大家对面向对象概念掌握更加深刻:
class Student:
company = "海贼王" #类属性
count = 0 #类属性
def __init__(self,name,score):
self.name = name #实例属性
self.score = score
Student.count = Student.count+1
def say_score(self): #实例方法
print("我是:",Student.company)
print(self.name,'的分数是:',self.score)
s1 = Student('onepis',80) #s1是实例对象,自动调用__init__()方法
s1.say_score()
print('一共创建{0}个 Student 对象'.format(Student.count))
这是一个 gif 动画。 反映了 类对象和实例对象创建的过程。
网址的话 gif 里面也有 可以自己 去看看。(pythontutor.com)
首先第一步是创建了 一个 全局对象 执行 class 语句。创建 方法对象和类属性 company
count
say_score
将 类对象 指向 Student
然后 通过类对象的 __init__
语句 初始化一些 实例属性 比如 name score
然后 将 创建的实例对象 指向 s1
接着 通过 实例对象s1
调用 say_score
方法
最后通过 Student.count
调用 count
类属性。
count
一开始 是 0
的 但是 我们里面的方法每次创建初始化的时候 都会加1
。 所以我们创建了一个 实例。 这里 返回是 1