• Python学习(4)-基础语法(模块)


    1 定义

    模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。
    案例:

    #!/usr/bin/python3
    # 文件名: using_sys.py
     
    import sys
     
    print('命令行参数如下:')
    for i in sys.argv:
       print(i)
     
    print('\n\nPython 路径为:', sys.path, '\n')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在pycharm中配置自动导入,然后输入类名,直接点击出方法即可引入,和javaIDEA一致。

    1. import sys 引入 python 标准库中的 sys.py 模块;这是引入某一模块的方法。
    2. sys.argv 是一个包含命令行参数的列表。
    3. sys.path 包含了一个 Python 解释器自动查找所需模块的路径的列表。

    2 import 语句

    想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下:

    import module1[, module2[,... moduleN]
    
    • 1

    当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。
    搜索路径是一个解释器会先进行搜索的所有目录的列表。
    注意:
    一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。

    3 from … import 语句

    Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中,语法如下:

    from modname import name1[, name2[, ... nameN]]
    
    • 1

    举例:

    >>> from fibo import fib, fib2
    >>> fib(500)
    1 1 2 3 5 8 13 21 34 55 89 144 233 377
    
    • 1
    • 2
    • 3

    4 from … import * 语句

    把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:

    from modname import *
    
    • 1

    这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。

    5 深入模块

    模块除了方法定义,还可以包括可执行的代码。这些代码一般用来初始化这个模块。这些代码只有在第一次被导入时才会被执行。
    每个模块有各自独立的符号表,在模块内部为所有的函数当作全局符号表来使用。

    5.1 __name__属性

    一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。

    #!/usr/bin/python3
    # Filename: using_name.py
    
    if __name__ == '__main__':
       print('程序自身在运行')
    else:
       print('我来自另一模块')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    运行输出如下:

    说明: 每个模块都有一个__name__属性,当其值是’main’时,表明该模块自身在运行,否则是被引入。
    说明:namemain 底下是双下划线, _ _ 是这样去掉中间的那个空格。

    5.2 dir() 函数

    内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回:

    5.3 标准模块

    Python 本身带着一些标准的模块库,有些模块直接被构建在解析器里,这些虽然不是一些语言内置的功能,但是他却能很高效的使用,甚至是系统级调用也没问题。

    5.4 包

    包是一种管理 Python 模块命名空间的形式,采用"点模块名称"。比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B 。

    import sound.effects.echo 引入包里面的模块
    
    • 1
  • 相关阅读:
    Rust实战 | 用 RustRover 开发猜数字游戏
    从零开始的PICO教程(4)--- UI界面绘制与响应事件
    mobaXterm使用pycharm
    zookeeper 的 Watch 功能三种应用场景
    真实大数据简历模版(四)【大数据-2年经验】电影网数据分析
    2022学生用护眼灯什么品牌的好?精选学生护眼灯品牌排行榜
    Spring Cloud Ablibaba 学习系列文章
    【王道】计算机组成原理第二章数据的表示与运算(二)
    TIOBE 5 月榜单揭晓:哪些编程语言正在上升?
    moment.js 实现获取近一月、近三月、近一年、一月后、一年后等
  • 原文地址:https://blog.csdn.net/wu2374633583/article/details/125555250