知行编程网知行编程网  2022-02-28 08:00 知行编程网 隐藏边栏 |   抢沙发  3 
文章评分 0 次,平均分 0.0
  • 高级语言都有面对对象,Python也不例外,比起c++,java这些传统的语言,Python中的面对对象去掉了很多复杂的东西,理解和使用起来更简单一些
  • 一般来说面对对象包含:数据封装、继承和多态这三大特点
  • Python的类我准备花4-5篇来仔细讲讲,今天我们先来了解一些最最最简单基本的概念

 

要点:

1.类的定义和类的实例 

2.类的初始化

3.类的删除

4.类的属性

5.类的方法

 

类的入门图

Python的类,复杂吗

 

1.类和类的实例

  • 类其实是一种数据结构,我们可以用它来定义对象,一个类会包含属性和行为特性.类是现实世界抽象的实体以编程形式出现.
  • python中类的声明用class关键字来命名。
  • python类分为两种:经典类(旧类),新式类.新式类主要是从Python2.2以后开始引入的,目前主要以用新式类为主(Python 3.x中默认都是新式类)

     

也许同学会问为啥有新式类的出现(主要的差别在于类内置属性,多重继承的搜索顺序和父类初始化)

Python的类,复杂吗

 

2.类的初始化

  • 类的初始化函数是用__init__来完成的,也许有的同学有c++,java基础的,觉得它和构造函数很像
  • 确实很像,注意注意注意__init__()不是类的构造函数,只是用来做初始化的

今天这篇只是揭露类的表层,等后面慢慢熟悉了之后,深入揭露类的本质的时候,我会告诉大家为什么它不是构造函数,只是初始化函数

Python的类,复杂吗

 

1).当Dog类声明一个dog_obj对象实例的时候,Python会自动去检查时候实现了__init__()方法,做一些实例对象的初始化工作,

2).有细心的小伙伴会问为啥这个__init__()函数长的这么奇怪,要有双下划线开头,哇你会抢答了,这个在Python中有特殊的含义.用来一些命名约定来进行访问控制

3).又有同学会问self是啥,这个参数是Python特有的,当__init__()被调用的时候,实例对象作为第一个参数被传递了进去,相同于java里面的this.也就是说self其实就是类的对象地址,啊哈你不信,好俺证明给你看

Python的类,复杂吗

 

3.类的删除

  • 类既然有初始化,就一定有删除,有进就有出,python里面用一个__del__()来负责清理类的对象,
  • 当这个对象没有人用了就会被清理掉.有同学会问~~我怎么知道什么时候对象没有人用了,聪明Python用引用计数的方法来追踪
  • 引用一次加1,当引用计数为0的时候,python内置了一个垃圾对象回收机制,一旦计数为0就清理对象就会去调用类里面的__del__()方法.是不是很智能,其实java也内置了这样的功能。

 

Python的类,复杂吗

 

4.类的属性

  • 类里面定义
  • 类的初始化函数里面定义

     

1)先来说说类里面定义,有一个Student类,里面有name和age属性

class Student(object):

name='wang'

age=10

name,age都是Student类的属性,所以Student的对象实例都共享name,age

换句话说你的s1,s2两个对象里面的name,age都是一样的,不信你看:

 

Python的类,复杂吗

再来看看对象的属性:

Python的类,复杂吗

 

5.类中的方法

 

  • 实例方法
  • 类的方法
  • 类的静态函数

 

类中的方法以及这3个方法之间的相互的调用关系比较复杂,它的设计思想跟java里面很像,限于篇幅,我们在下一篇文章单独对类的方法详细讲解.

 

 


好了初探Python的类就讲到这里啦,希望能给初学者一些启发,若有什么不懂的,也可以留言跟我探讨交流.

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享