欢迎回来｡
我没有告诉你们的是, 当再次学习面向对象编程时,
不仅仅是在Python中, 而是在任何支持OP范式的编程语言中, OP的四个支柱,
是面向对象编程做得非常非常好的四件事｡
事实上, 我们已经学会了第一个, 那就是封装的概念｡
什么是封装？
封装是数据和操作该数据的函数的绑定｡
我们封装成一个大的对象, 这样我们就可以把所有的东西都保存在这个盒子里, 用户､ 代码或其他机器都可以与之交互｡
这些数据和函数就是我们所说的属性和方法, 对吧？
我们能够通过拥有姓名和年龄数据或属性来封装玩家角色的功能, 并且还拥有可以对该姓名和年龄起作用的函数｡
比如说, 我可以有一个方法｡
这里写着“喊”｡
还是说话｡
speake方法现在可以使用姓名和年龄｡
我可以说｡
我叫赛尔夫·多德｡
我也是｡
自我｡
八岁｡
所以如果我做玩家一点说话｡
我负责这个｡
我叫安德烈, 我已经100岁了｡
我在封装功能｡
如果我没有这个类, 我会有一些变量和两个函数｡
但是通过使用封装, 我把它打包成了一个蓝图, 我可以创建多个对象,
这样当其他人看到我的代码时, 他们就知道, 嘿, 这是一个完整的对象, 我可以与之交互｡
我可以在某些方面使用玩家角色描述｡
我们也在内置的Python数据类型中看到了这一点, 对吧？
当我创建一个字符串｡
就像这样｡
因为封装, 我可以使用所有这些功能, 所有这些我可以访问的方法, 如果我这样做,
比如说资本化, 它将资本化我所有的优势｡
我将所有这些功能都封装起来供我使用｡
现在就去
为什么我们要将数据和函数打包成属性和方法？
因为这给了我们额外的动力, 对吧？
例如, 如果这个玩家角色没有任何动作, 任何方法, 只有属性｡
这样的话, 这有点像字典, 对吧？
如果我在这里打印玩家1并单击运行, 这是无用的｡
我有一个播放器对象, 但我可以像这样访问name｡
我也可以访问H｡
就像这样｡
但我真的不能对它做任何事情｡
我这里也可以有同样的字典｡
假设参与人2等于一本字典名字是安德烈年龄是100.
而两者之间唯一真实的区别是我获取这些信息的方式｡
我不使用点符号, 而是使用括号符号来访问键｡
这样当我点击运行时｡
哦, 我的天
我必须确保我在这里为参与人2做了两个｡
如果我单击“运行”｡
再来一次｡
这是一样的｡
当然我可以这样做, 但这是一种无用的｡
如果我想要的只是数据, 为什么不创建一个字典呢？
但是用这种方式, 我把东西组合起来, 把东西包装到那些实例中, 包装到那些有用的盒子里,
也包装到那些有意义的东西里｡
对不对？
因为我们的世界充满了数据和行动, 对吗？
即使是一棵树, 例如,
如果我们在真实的世界中有一个树类, 这棵树可能会有它是万年青还是多年生的, 它会有它是否有租约, 它有多高｡
我们会得到所有的信息, 但也会采取行动｡
对不对？
我可以砍倒一棵树｡
树可以生长, 树可以伸展它的根｡
这样我们就可以用代码模拟真实的世界中发生的事情｡
这就是封装, 我们已经看到了｡
但是, 让我们在下一个视频中讨论第二个支柱｡