美文网首页
《Python 核心技术与实战》 学习笔记 Day13 搭建积木

《Python 核心技术与实战》 学习笔记 Day13 搭建积木

作者: _相信自己_ | 来源:发表于2023-01-27 22:56 被阅读0次

    简单模块化

    说到最简单的模块化方式,你可以把函数、类、常量拆分到不同的文件,把它们放在同一个文件夹,然后使用 from your_file import function_name, class_name 的方式调用。之后,这些函数和类就可以在文件内直接使用了。

    
    # main.py
    
    from utils import get_sum
    from class_utils import *
    
    print(get_sum(1, 2))
    
    encoder = Encoder()
    decoder = Decoder()
    
    print(encoder.encode('abcde'))
    print(decoder.decode('edcba'))
    
    ########## 输出 ##########
    
    3
    edcba
    abcde
    

    项目模块化

    在 Linux 系统中,每个文件都有一个绝对路径,以 / 开头,来表示从根目录到叶子节点的路径,例如 /home/ubuntu/Desktop/my_project/test.py,这种表示方法叫作绝对路径。

    另外,对于任意两个文件,我们都有一条通路可以从一个文件走到另一个文件,例如 /home/ubuntu/Downloads/example.json。再如,我们从 test.py 访问到 example.json,需要写成 '../../Downloads/example.json',其中 .. 表示上一层目录。这种表示方法,叫作相对路径。

    神奇的 if name == 'main'

    import 在导入文件的时候,会自动把所有暴露在外面的代码全都执行一遍。因此,如果你要把一个东西封装成模块,又想让它可以执行的话,你必须将要执行的代码放在 if name == 'main'下面。

    其实,name 作为 Python 的魔术内置参数,本质上是模块对象的一个属性。我们使用 import 语句时,name 就会被赋值为该模块的名字,自然就不等于 main了。

    总结

    1. 通过绝对路径和相对路径,我们可以 import 模块;
    2. 在大型工程中模块化非常重要,模块的索引要通过绝对路径来做,而绝对路径从程序的根目录开始;
      3.. 记着巧用if name == 'main'来避开 import 时执行。

    相关文章

      网友评论

          本文标题:《Python 核心技术与实战》 学习笔记 Day13 搭建积木

          本文链接:https://www.haomeiwen.com/subject/lqcyhdtx.html