Python函数 之 模块和包

1.模块 

1, 在Python 中, 每个 `.py` 结尾的 Python 代码⽂件 都可以称为是⼀个模块。

2, 在模块中 别⼈书写好的功能(变量, 函数, 类),我们可以拿来直接使⽤。

3, 我们自己写的代码文件, 想要作为模块让别⼈使⽤, 你的代码⽂件名(模块名) 满足标识符的规则

4, 想要使用 别人模块中写好的功能,需要先导入别人写好的功能。

5, as 关键字 , 可以给模块或者功能起别名


2.模块导入的方法

模块就好比是工具包, 要想使用这个工具包中的工具, 就需要先 导入模块 

(1)方式一:多用于导入系统中的常用的模块和功能

  • 导入模块:
    • import 模块名    # 模块名 就是代码文件名,不要 .py

  • 使用其中的功能:
    • 模块名.功能名    # 功能可以是变量,函数 和类
import random
num = random.randint(1, 10)
print(num)

(2)方式二:多用于导入自己书写的,或者是第三方的模块

  • 导入模块:
    • from 模块名 import 功能名   # 导入指定的功能

  • 使用其中的功能:
    • 功能名()

  • 小tips:导入模块时可以使⽤快捷键 Alt 回⻋

from random import randint
num = randint(1, 10)
print(num)

需求:

1. 定义⼀个模块 tools.py , 在模块中定义⼀个函数 sum_2_num(), 可以对两个数字求和。

2. 新定义⼀个代码⽂件, 调⽤ tools.py ⽂件中的sum_2_num() 函数, 对 10 和 20 求和。

tools.py文件:

def sum_num(a, b):
    return a + b

新文件:xx.py

# import tools
#
# num = tools.sum_num(10, 20)
# print(num)


from tools import sum_num as sn

# num = sum_num(10, 20)
num = sn(10, 20)
print(num)

3.__name__ 变量

  • 导⼊模块的时候, 会执行模块中的代码
  • 作用:如果在导⼊模块的时候, 模块中的部分代码不想被执⾏, 可以使⽤ __name__ 来解决
  •  __name__ 变量:是 Python 解释器内置的变量(变量的值是⾃动维护的), 每个代码⽂件中,都有这个变量
    • 在模块中 直接右键运⾏代码⽂件, __name__ 变量的值是 '__main__'
    • 如果是被导⼊运行代码文件, __name__ 变量的值 是 模块名(文件名)
  • 总的来说,所以: if __name__ == '__main__':
                                     # 在这个 if 的缩进中书写的代码 , 导⼊的时候不会被执⾏

解析: 

(1)在xx.py中导入模块tools的时候,会执行tools模块中的代码,如下图:

 

(2)使用_name_变量的原理:在模块中 __name__ 的值是'__main__',在被导入的文件中,他的值是模块名(文件名)

(3)使用判断语句,控制导入的模块里的代码执行与否: 

 


4.模块的导⼊顺序

  1. 在导⼊模块的时候, 会先从代码所在的目录进⾏导⼊
  2. 如果没有找到,回去 Python 系统的⽬录查找导⼊
  3. 如果没有找到, 报错

注意点: 我们⾃⼰定义的代码文件名字 不要和你带入的系统的模块文件名⼀样。


5.包(package)

(1)包的创建

(2)包的导入

相关推荐

  1. Python学习路-模块

    2024-07-10 07:00:03       60 阅读
  2. Python 模块

    2024-07-10 07:00:03       54 阅读
  3. Python模块

    2024-07-10 07:00:03       25 阅读
  4. Python模块

    2024-07-10 07:00:03       34 阅读
  5. Python函数模块

    2024-07-10 07:00:03       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 07:00:03       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 07:00:03       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 07:00:03       90 阅读
  4. Python语言-面向对象

    2024-07-10 07:00:03       98 阅读

热门阅读

  1. [Flutter] Android Studio pub get 不起作用

    2024-07-10 07:00:03       31 阅读
  2. PHP数据结构之队列

    2024-07-10 07:00:03       25 阅读
  3. C++ override specifier (C++ override 说明符)

    2024-07-10 07:00:03       29 阅读
  4. 兼容问题---ios底部的安全距离css设置

    2024-07-10 07:00:03       28 阅读
  5. 自动驾驶技术的原理

    2024-07-10 07:00:03       30 阅读
  6. MySQL中字段的实际长度

    2024-07-10 07:00:03       34 阅读
  7. 通过gateway 打印日志全局控制日志

    2024-07-10 07:00:03       35 阅读
  8. mysql实战入门-基础篇

    2024-07-10 07:00:03       26 阅读
  9. Linux安装Docker以及Docker Componse

    2024-07-10 07:00:03       34 阅读
  10. 通信技术在反无人机中的作用分析

    2024-07-10 07:00:03       33 阅读
  11. FastGPT源码部署,不使用docker

    2024-07-10 07:00:03       31 阅读