初次了解了类与对象后,就可以深入学习一些面向对象的特性了:封装,继承,多态之
首先还是需要从类开始,一下是劳模类:平面图形.这次稍作修改,删除了获取对象名字的方法,改成了’封装好了’的获得图形边数的方法,嗯,虽然,确实,真的封装的比较生硬,见谅:
class PlaneFigure(object):
def __init__(self, name_input): # 此处的 init 两侧有两个下划线
self.name = name_input
# 封装,在此处封装了判断边的方法,对外界来说不需要知道计算过程,只需要
# 输入名字比如'三角形',就可以得到这个平面图形有三条边
# 注:这里封装了,照抄就行,不需要知道过程是什么原理嗯~ o(* ̄▽ ̄*)o
def get_sides_number(self):
# 知道下也不是坏事:
# == 表示判断两边是否相等
# if 后面的语句计算结果如果是成立的,就执行冒号后面缩进的语句块
if self.name == '三角形':
print(self.name, '有三条边')
这次新建一个三角形的实例对象,对象的变量名的主要作用就是做内存地址的’助记符’,指向了内存地址
# import class
from bCapsulation.PlaneFigure import PlaneFigure
triangle = PlaneFigure('三角形')
# 打印一下类和变量
print('PlaneFigure is ', PlaneFigure, ';\nand triangle is ', triangle)
运行结果为:
PlaneFigure is ;
and triangle is
这里可以看到 PlaneFigure 是一个 class 类,全名叫’aClassAndInstance.PlaneFigure.PlaneFigure’
triangle 是一个指向内存地址为 ‘0x0000021749B17550’
的平面图形类的一个实例变量
然后运行下封装好的获得平面图形边数的方法
# 不需要知道过程就能得到三角形有三条边的结果
triangle.get_sides_number()
控制台’自动’输出了
三角形 有三条边
以上的总体过程,对外界来说就是,使用者只需要告诉程序,这是个平面图形类的三角形对象,然后向程序发出请求:‘告诉我这个图形的边数’,程序就会返回边数,中间的过程对外界都是不见的,也就是把这些对外界无关紧要的内容’封装了起来’,也就是面向对象的封装性.
https://github.com/Wsdady/LearnPython
'从面向对象开始’这个坑感觉真的有点坑啊(think in java 作者真强,仰望),这个 == 和 if 语句一出来我都有点心虚,零基础的真不能这么玩,嗯,应该是我水平还不到家吧,不过既然这么干了硬着头皮也试水到底,谢谢大家的支持!
–by Libor B. Lodestar 名远
2019.05.16