我们知道Ope有四大支柱, 我们还学习了封装｡
第二个是什么？
这叫抽象｡
抽象化意味着隐藏信息或将信息抽象化, 只允许访问必要的内容｡
所以无论用户､ 程序员或机器感兴趣的是什么, 这是给予唯一允许访问其他一切的东西｡
我们把它藏在引擎盖下的毯子里, 因为我们的用户不必担心它｡
让我来告诉你我的意思｡
如果我回到我们以前的例子｡
所以我们没有字典, 而是有一个玩家角色, 有一堆方法｡
这里可以看到抽象概念, 对吧？
当我做玩家的时候一个人小点声｡
您看到的是抽象的运行, 因为当我单击Run时｡
我得到了这个饮料, 但当我打电话给发言, 我真的不关心发言是如何实现的｡
我只知道一号参与人可以使用speak方法, 我可以使用它.
当我使用元组之类的东西时也是如此｡
好吧, 我知道了
如果我有1, 2, 3, 我在这里做了点, 我可以做计数来计算元组中有多少项｡
所以如果我打印并点击运行｡
我必须给予它一个我们正在寻找的东西｡
在我们的例子中, 我们先看一个, 然后在这里再添加一个｡
如果我单击“运行”｡
我也一样｡
现在, 我需要知道count方法是如何实现的吗？
不, 不, 不
我是说, 我可以去调查一下｡
我可以看看Python文档, 也许是Python代码, 然后理解它是如何计算这些的｡
但我真的不需要｡
好吧, 我知道了
如果我们试图理解每一个小片段, 我们的头会爆炸｡
有时候, 我们只需要一个方法或属性, 就可以访问它, 而不必担心它是如何实现的,
这真的很好｡
内置函数也是如此, 对吧？
如果我在这里输入长度, 然后单击run｡
我得到的长度是4, 但我并不需要知道length在Python中是如何实现的｡
它被抽象化了｡
而这就是OP的力量｡
它把我们不需要关心的东西抽象出来, 或者至少它使我们更有效率, 这样我们就知道它是以某种方式工作的,
我们就不会浪费时间从头开始学习或编码｡
例如, 如果我们有iPhone,
那么, iPhone上的相机功能, 对于我们构建的应用程序来说是很好的, 但我们不需要确切地知道iPhone相机是如何覆盖在iPhone笔记本上的｡
相反, iPhone通常会给我们一种方式说相机, 点, 采取｡
照片｡
让我们可以在不知道苹果工程师如何编码的情况下拍照｡
所以这是一个非常强大的概念｡
所以你在想, 我想我会得到抽象｡
但我问你｡
我能演一号玩家吗｡
点名称等于让我们说, 感叹号, 然后球员点运行｡
或者你知道吗？
让我们做说话等于嘘｡
确定是一号玩家｡
好吧, 如果我现在打印出来做参与人一｡
Dot speak和我试着运行这个函数｡
让我想想｡
我得到字符串对象是不可调用的, 因为speak已被修改｡
Speak已被修改为字符串值, 而不是我们所需要的实际函数｡
因此, 如果我只运行检查speak属性, 我会得到boo｡
嗯嗯嗯
我的意思是, 抽象是好的, 但在这里等一下｡
这可不好｡
如果我有一个抽象的类, 但任何人都可以加入沿着
任何程序员都可以来删除我所有的辛勤工作, 并像这样覆盖它｡
这不是很糟吗？
让我们休息一下, 并在下一个视频中进一步探讨此主题｡