78_内存分析实例对象和类对象创建过程(重要)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值