一篇文章带你搞懂Python中的类

今天我们要说的是面向对象的核心-----类 , 类能帮我们把复杂的事情变得有条理 , 有顺序 , 希望大家通过学习类能改善自己的编码风格 , 使代码变得更为好看 , 更加通俗易懂 。
 
1.类的用法一、什么是类类(class) , 作为代码的父亲 , 可以说它包裹了很多有趣的函数和方法以及变量 , 下面我们试着简单创建一个吧 。

一篇文章带你搞懂Python中的类

文章插图
 
【一篇文章带你搞懂Python中的类】这样就算创建了我们的第一个类了 。大家可以看到这里面有一个self , 其实它指的就是类aa的实例 。每个类中的函数只要你不是类函数或者静态函数你都得加上这个self , 当然你也可以用其他的代替这个self , 只不过这是Python中的写法 , 就好比JAVA 中的this 。
 
二、类的方法1.静态方法 , 类方法 , 普通方法类一般常用有三种方法 , 即为static method(静态方法) , class method(类方法)和self(普通方法) 。下面我们来看看他们之间的区别吧 。
一篇文章带你搞懂Python中的类

文章插图
 
从这里可以看出我们的三种方法有一个共同点 , 那就是既可以在实例中访问 , 也可以直接用类访问 。不同的是 , 类实例访问时是不会执行init方法的 , 也就是没有进行初始化 。如果用类直接访问 , 可以清楚看到它的运行轨迹 。如果想在一个方法里调用其他方法则只需:实例名.方法名 或者 类名.方法名 即可 。
 
2.安全方法 , 私有方法 , 安全变量 , 私有变量安全方法一般是为了保护类的安全性 , 为了限制访问权限而设立的 。一般只需在方法前加单下划线即可 , 那么私有方法怎么访问呢?和其他方法访问方法一样 。
一篇文章带你搞懂Python中的类

文章插图
 
安全方法:可以在外部进行调用并且其他方法也能访问到 , 它允许本身的任何方法进行访问 , 并可在外部调用 , 安全属性也是;
私有方法:只能在私有方法内部调用 , 不能通过类名或者类的实例名来调用 , 所以你可以在其他方法中通过self.ww来调用或者cls.ww来调用 , 这样就做到了私有的功能 。
 
三、类的特性类的特性 , 相信接触过面向对象的小伙伴应该都知道 , 封装、继承和多态 。
1.封装讲的就是将一个功能封装到类中 , 这个很好理解 。
 
2.继承就是一个类和另一个类的主体结构一致 , 就好比父亲和儿子的区别 , 儿子继承父亲所有的特点 , 这使得他可以少做一些重复劳动 , 并且他还有自己的一套 , 这就叫继承 , 下面我们通过实例说明:
一篇文章带你搞懂Python中的类

文章插图
 
可以看出我们实现了继承 , 就是简单的在子类中添加了父类的名字 , 并且写了个spuer , 用来继承父类的所有的特性 。虽然父类的所有东西我们都能继承 , 但并不是说所有的你都能用的 , 比如说父类的私有方法或者私有属性:
一篇文章带你搞懂Python中的类

文章插图
 
那么如果你想要使用它们那该怎么办呢?很简单 , 你只需将私有方法或者属性添加到父类某个可以公开访问的类中 , 然后子类就能使用这些父类定义的私有方法或者属性了 。
一篇文章带你搞懂Python中的类

文章插图
 
当然 , 除了单一继承 , 还有多继承 , 它可以继承两个类的所有属性和方法 , 只不过写法与其他编程语言有点不同 , 它的多继承就是递归继承 , 不能同时继承 , 也就是:
一篇文章带你搞懂Python中的类

文章插图
 
这样就实现了多继承 , 多继承可以大大简化代码量 。我们可以通过一些魔法方法来获得父类的名称以及说明 。
__bases__#查看类的所有父类__base__#查看类的父类__doc__#查看类的使用文档 , 在类中以三引号扩起来的部分都是文档内容


推荐阅读