‫让我们来了解一下实际导入这些模块的不同方法｡
‫到目前为止, 我们只学习了导入, 但有时事情会变得非常繁忙｡
‫例如, 实际上我们可以在另一个包中包含另一个包｡
‫例如, 如果我在这里创建了一个新文件夹, 并说“新建Python包”, 我们将称之为“更多购物点击”｡
‫好吧, 我会的
‫你看到了吗？
‫我已经在一个包中启动了另一个包, 该包在它的文件中有自己的包｡
‫现在我们将其移动到重构移动, 并将其移动到“更多购物”文件夹中.
‫所以我就多说几句｡
‫买东西
‫如果我单击och, 您会看到我将此模块移到了这里｡
‫所以我有一个包裹里面的包裹｡
‫我们访问它的方式是简单地购物｡
‫购物点购物车｡
‫让我们复制一遍, 在这里做同样的事情｡
‫现在, 当我单击“运行”时｡
‫你会发现它仍然有效｡
‫但这有点太疯狂了｡
‫你可以想象, 随着我们有越来越多的软件包, 我们必须不断地做这个点, 这个点,
‫这是越来越少｡
‫又长又丑｡
‫那么, 我们如何才能更好呢？
‫好吧, 一个更简洁的方法是这样做, 而不是说进口｡
‫我们从这说｡
‫部分, 我想导入函数｡
‫所以我在这里说, 嘿, 从包名, 包名, 模块, 导入我想要的任何函数｡
‫在我们的示例中, 我们希望导入buy函数｡
‫所以你看这里我可以在我的代码里做这个｡
‫我可以把它当作主文件的一部分来运行｡
‫如果我运行这个｡
‫你会发现它仍然有效｡
‫太棒了｡
‫所以这绝对是干净的｡
‫我们也可以用效用函数来实现｡
‫我可以说从实用程序导入和实际导入这两个文件或这两个函数｡
‫所以这就是乘法｡
‫如果我们想要另一个函数, 我们可以加一个逗号, 然后说divide｡
‫所以现在我们可以打印苹果了｡
‫或者苹果公司也一样｡
‫五乘二｡
‫我们也可以繁殖｡
‫确保这里是逗号, 因为它是这样的函数, 所以如果我运行这个函数, 你们会看到.
‫我们走吧｡
‫这也行｡
‫所以这是一个清理代码的好方法｡
‫你也可以这样说from package name, package name.
‫然后导入整个模块｡
‫因此, 假设我想导入购物车模块｡
‫我可以说进口｡
‫所以包打点包｡
‫或者, 您可以只完成一个包, 然后导入实际的模块购物车｡
‫所以现在我会像购物车一样访问它｡
‫这个也会成功的｡
‫现在, 您可能希望这样做, 而不是像以前那样, 因为有时会发生名称冲突｡
‫让我来告诉你｡
‫假设我有一个打印, 这里我们使用max函数, 这说明它是一个内置函数｡
‫我们给予它一个迭代器, 它会找到最大值, 如果我运行这个程序, 你会看到列表中的最大值是3.
‫假设在我们的效用函数中我们有一个, 比如说, 而不是除法或者我们加上一个, max, 简单地说.
‫回报和呜呜声｡
‫好吧, 如果我回到我的主要pi｡
‫还有｡
‫获取Max作为函数, 然后单击“运行”｡
‫你看, 我有空气｡
‫我知道Max取了零位置参数, 但是给了一个, 因为现在Max的意思和我们想的不一样｡
‫至少在这个文件中我们导入了Max和Well｡
‫Max现在是一个完全不同的函数, 所以我们可以覆盖现有的函数｡
‫所以通过使用像这样的购物车, 我们可以确保只有一个案例, 我们可以命名为碰撞.
‫但是shopping cart拥有的所有属性或所有方法都与shopping cart相关联｡
‫因此, 我只有一个名称空间, 而不是有多个可以覆盖的函数｡
‫顺便说一下, 这也是我不建议做这样的事情的原因之一｡
‫你可以做进口星星｡
‫这里说的是, 嘿, 从实用程序模块, 导入所有内容｡
‫当你这么做的时候｡
‫您将看到, 我们再次得到一个错误, 因为它也导入了max｡
‫因为我们甚至不知道现在进口的是什么, 我们看不到它｡
‫我们得去档案室看看｡
‫当我们遇到这样的错误时, 我们会想, 发生了什么？
‫我想, 麦克斯在工作, 这是因为这条线｡
‫因此, 最好明确地说出您想要导入的内容｡
‫但我们先把麦克斯除掉吧｡
‫但是正如你所看到的, 模块可以在不同的方面发挥重要作用｡
‫我的建议是总是明确地说出您想要导入的内容, 格式通常是使用import语句后跟包模块或导入模块｡
‫或者你可以用from语句给予它包, 子, 包和模块,
‫或者你可以先写模块, 然后写import和特定的函数或者实际的模块本身.
‫根据您的需要, 有多种方法可供选择｡
‫这里的要点是模块和包帮助我们有良好的工程实践, 并以有组织的方式构建大型项目,
‫同时仍然拥有所有这些文件｡
‫互相交谈｡
‫好吧, 我会的
‫这是很多｡
‫让我们在下一个视频中了解更多信息｡