python class instance_N1.Python | 初理解:类class,方法method,实例instance,指针self

笔者是Python学习者,记录学习,如有错还望大神们指点,感谢!

感谢 @王第铮 耐心用上帝造人的故事,讲明白了如何创建类,创建方法,并用self指针概念指向实例。

假设上帝想创造人类。他建立了一个人类模子(class创建类,class 人类模子) 这个模子就是人的模型。

某一天,上帝想用这个模子生产人类,然后,他创造了亚当和夏娃。亚当和夏娃就是这个模子的实例,亚当和夏娃也是属于人类模子的。(亚当=人类模子;夏娃=人类模子)

某一天,上帝想给亚当和夏娃做头发,于是就要用做头发这个功能,还好上帝很机智,设计人类模子的时候就预留了做头发功能(早已创建方法method,self.剪头发=剪x厘米;self.染发=染成x色)。于是,亚当.剪头发(剪10cm) ;夏娃.染头发(染成红色)。

但是呢,在这个设计人类模子的时候,模子需要表明剪头发这个功能是做“自己”的头发,那么怎么知道亚当剪亚当的,夏娃做夏娃的呢,设计模型的时候上帝也不知道是不是还有个Tom或者Jerry什么的,于是就用self来指代实例本身。所以在这个模子里面,做头发的功能(某个或几个方法Method)就写成 self.剪头发=剪x厘米;self.染发=染成x色。

当夏娃去调用这个方法的时候,在模型内部,self就变成了夏娃,亚当调用self就变成亚当。

每次调用方法就修改了实例的属性,比如第一次调用亚当.剪头发(剪10cm),第二次再调用亚当.剪头发(剪10cm),此时亚当的头发就被剪短了20cm。至于为什么每次调用方法就修改了实例的属性?Python为什么这么设计,因为这是面向对象语言的设计思想,几乎所有面向对象的语言都是如此,而且,修改属性也是体现在实例之中。

(个人觉得上帝造人的故事更能明白这几个概念,之前老看“蓝图”的解释,看不太明白)

这里再放上《父与子的编程之旅》中的讲解类,方法,属性,实例的例子。

1. 属性attribute是有关一个对象object(实例instance)“你所知道的信息”,属性是包含在对象中的变量。

2.方法method是指可以对对象做的动作,方法是包含在对象中的函数。

3.如果烤第二根烤肠,需要先实例化第二个烤肠,一根烤肠不能被烤第二次。

4.Self指针就是一个代号,指向实体。

5.在python和Java中,self也不是指针了,就是实例instance。但是说成指针比较好理解。指针和实例其实是一种东西,指针更能体现指向的意思。(刚刚 @Chin Rowen 指出这个理解错误)

更正理解:python 把一切数据,一切的一切都看作对象,在python中,没有变量,只有指针(不是指真的没有variable,而是理解python语言为什么这么设计的话)。

赋值变量,并不是定义变量,而是定义指针,要说变量,也是指针变量。(还没读《python学习手册》,未能深层次理解编程语言的设计逻辑,先挖坑吧。)一切都是对象,一切都是指针 - CSDN博客​blog.csdn.net

公众号:Jiurentravel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值