Python的学习之-类与对象

什么是类

类即类别、种类,是面向对象设计最重要的概念,对象是特征与技能的结合体,而类则是一系列对象相似的特征与技能的结合体

在现实世界中:先有对象,再有类

世界上肯定是先出现各种各样的实际存在的物体,然后随着人类文明的发展,人类站在不同的角度总结出了不同的种类,如人类、动物类、植物类等概念

也就说,对象是具体的存在,而类仅仅只是一个概念,并不真实存在

在程序中:务必保证先定义类,后产生对象

这与函数的使用是类似的,先定义函数,后调用函数,类也是一样的,在程序中需要先定义类,后调用类

不一样的是,调用函数会执行函数体代码返回的是函数体执行的结果,而调用类会产生对象,返回的是对象

PS: 站的角度不同,定义出的类是截然不同的

PS:现实中的类并不完全等于程序中的类,比如现实中的公司类,在程序中有时需要拆分成部门类,业务类...... 

PS:有时为了编程需求,程序中也可能会定义现实中不存在的类,比如策略类,现实中并不存在,但是在程序中却是一个很常见的类

类有两种属性:数据属性和函数属性

1. 类的数据属性是所有对象共享的

类的数据属性是所有对象共享的,id都一样

print(id(OldboyStudent.school))

print(id(s1.school))

print(id(s2.school))

print(id(s3.school))

'''

4377347328

4377347328

4377347328

4377347328

'''

2. 类的函数属性是绑定给对象用的

类的函数属性是绑定给对象使用的,obj.method称为绑定方法,内存地址都不一样

ps:id是python的实现机制,并不能真实反映内存地址,如果有内存地址,还是以内存地址为准

print(OldboyStudent.learn)

print(s1.learn)

print(s2.learn)

print(s3.learn)

'''

<function OldboyStudent.learn at 0x1021329d8>

<bound method OldboyStudent.learn of <__main__.OldboyStudent object at 0x1021466d8>>

<bound method OldboyStudent.learn of <__main__.OldboyStudent object at 0x102146710>>

<bound method OldboyStudent.learn of <__main__.OldboyStudent object at 0x102146748>>

'''

猜你喜欢

转载自www.cnblogs.com/shizhengquan/p/10083563.html
今日推荐