让我们来了解一下实际导入这些模块的不同方法｡
到目前为止, 我们只学习了导入, 但有时事情会变得非常繁忙｡
例如, 实际上我们可以在另一个包中包含另一个包｡
例如, 如果我在这里创建了一个新文件夹, 并说“新建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和特定的函数或者实际的模块本身.
根据您的需要, 有多种方法可供选择｡
这里的要点是模块和包帮助我们有良好的工程实践, 并以有组织的方式构建大型项目,
同时仍然拥有所有这些文件｡
互相交谈｡
好吧, 我会的
这是很多｡
让我们在下一个视频中了解更多信息｡