本文实例讲述了Python使用import导入本地脚本及导入模块的技巧。分享给大家供大家参考,具体如下:

导入本地脚本

import 如果你要导入的 Python 脚本与当前脚本位于同一个目录下,只需输入 import,然后是文件名,无需扩展名 .py。 伪代码如下:

import useful_functions

useful_functions.add_five([1, 2, 3, 4])

我们可以为导入模块添加别名,以使用不同的名称引用它。

import useful_functions as uf

uf.add_five([1, 2, 3, 4])

使用 if main 块

为了避免运行从其他脚本中作为模块导入的脚本中的可执行语句,将这些行包含在 if __name__ == "__main__" 块中。或者,将它们包含在函数 main() 中并在 if main 块中调用该函数。

每当我们运行此类脚本时,Python 实际上会为所有模块设置一个特殊的内置变量 __name__。当我们运行脚本时,Python 会将此模块识别为主程序,并将此模块的 __name__变量设为字符串 “main”。对于该脚本中导入的任何模块,这个内置 __name__变量会设为该模块的名称。因此,条件 if __name__ == "__main__"会检查该模块是否为主程序。

在同一目录下创建如下两个脚本文件,并在终端里运行这些脚本!实验 if main 块并访问导入模块中的对象!

demo.py 文件

# demo.py

import useful_functions as uf

scores = [88, 92, 79, 93, 85]

mean = uf.mean(scores)

curved = uf.add_five(scores)

mean_c = uf.mean(curved)

print("Scores:", scores)

print("Original Mean:", mean, " New Mean:", mean_c)

print(__name__)

print(uf.__name__)

useful_functions.py文件

# useful_functions.py

def mean(num_list):

return sum(num_list) / len(num_list)

def add_five(num_list):

return [n + 5 for n in num_list]

def main():

print("Testing mean function")

n_list = [34, 44, 23, 46, 12, 24]

correct_mean = 30.5

assert(mean(n_list) == correct_mean)

print("Testing add_five function")

correct_list = [39, 49, 28, 51, 17, 29]

assert(add_five(n_list) == correct_list)

print("All tests passed!")

if __name__ == '__main__':

main()

如果运行 $ python demo.py,那么有如下输出结果:

Scores: [88, 92, 79, 93, 85]

Original Mean: 87.4 New Mean: 92.4

__main__

useful_functions

如果运行 $ python useful_functions.py,那么有如下输出结果:

Testing mean function

Testing add_five function

All tests passed!

import 导入模块的技巧

要从模块中导入单个函数或类:

from module_name import object_name

要从模块中导入多个单个对象:

from module_name import first_object, second_object

要重命名模块:

import module_name as new_name

要从模块中导入对象并重命名:

from module_name import object_name as new_name

要从模块中单个地导入所有对象(请勿这么做):

from module_name import *

如果你真的想使用模块中的所有对象,请使用标准导入 module_name 语句并使用点记法访问每个对象

import module_name

为了更好地管理代码,Standard 标准库中的模块被拆分成了子模块并包含在软件包中。软件包是一个包含子模块的模块。子模块使用普通的点记法指定。子模块的指定方式是软件包名称、点,然后是子模块名称。你可以如下所示地导入子模块

import package_name.submodule_name

希望本文所述对大家Python程序设计有所帮助。

python包导入详细教程脚本之家_python包导入详细教程脚本之家_Python使用import导入本地脚本及导入模块的技巧总结......相关推荐

  1. 模块是python中普通的文件吗_python 包和模块

    当执行代码时,从这行开始执行:当外部调用代码为模块时,此部分不会被执行. if __name__ == '__main__': pass 模块是对代码的整理,包是对模块的整理. 模块 Python 模 ...

  2. 【教程】基于Arduino+ESP32的带透明显示接入米家的智能门锁的详细图文教程

    目录 说在前面 一. Arduino_ESP32环境搭建 二. 硬件选型 2.1系统整体接线图 三. 软件设计和关键代码 3.1 软件工作流程逻辑 3.2显示设计 3.2.1 TFT_eSPI库安装 ...

  3. python脚本自动运行失败_Linux下Python脚本自启动和定时启动的详细步骤

    一.Python开机自动运行 假如Python自启动脚本为 auto.py .那么用root权限编辑以下文件: sudo vim /etc/rc.local 如果没有 rc.local 请看 这篇文章 ...

  4. python程序开机自启动_Linux下Python脚本自启动和定时启动的详细步骤

    一.Python开机自动运行 假如Python自启动脚本为 auto.py .那么用root权限编辑以下文件: sudo vim /etc/rc.local 如果没有 rc.local 请看 这篇文章 ...

  5. python脚本开头怎么写_浅谈Python脚本开头及导包注释自动添加方法

    浅谈Python脚本开头及导包注释自动添加方法 1.开头:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定 #!/usr/bin/python 是用来 ...

  6. 三维家可以导入别人的方案吗_三维家辅助工具如何使用?三维家辅助工具安装使用教程...

    三维家辅助工具是三维家3D云设计平台的辅助软件,可以通过这个工具直接批量上传产品模型和贴图,还能预览3vj格式的文件,可以借助这个辅助工具启动CAD,并从CAD导出图纸,有些朋友不太清楚这款软件是如何 ...

  7. c调用python第三方包大包_Python 包构建教程

    setuptools 和 setup.py Setuptools 和 distutils 都是用于编译.分发和安装 python 包的一个工具,特别是在包依赖问题场景下非常有用,它是一个强大的包管理工 ...

  8. python导入包相当于什么_Python包及其定义和引用详解

    对于一个需要实际应用的模块而言,往往会具有很多程序单元,包括变量.函数和类等,如果将整个模块的所有内容都定义在同一个 Python 源文件中,这个文件将会变得非常庞大,显然并不利于模块化开发. 什么是 ...

  9. python导入本地文件-Python使用import导入本地脚本及导入模块的技巧总结

    本文实例讲述了Python使用import导入本地脚本及导入模块的技巧.分享给大家供大家参考,具体如下: 导入本地脚本 import 如果你要导入的 Python 脚本与当前脚本位于同一个目录下,只需 ...

最新文章

  1. 【解决方案】Selenium打开网站却显示空白
  2. php扫描蓝牙设备接口,微信硬件蓝牙扫描某个设备接口onScanWXDeviceResult
  3. typeof null的返回值是什么?_数据类型与typeof
  4. 华南理工大学和浙大计算机学院,浙江大学和华南理工大学的办学实力比较
  5. hive大数据倾斜总结
  6. jQuery以JSONP的访问调用一个WCF REST服务
  7. turtle生成二叉树
  8. Linux 内存管理 | 连续分配方式 和 离散分配方式
  9. note20220227.docx
  10. win7笔记本蓝牙连接蓝牙耳机设备,无法播放音乐,听不见声音
  11. 【转载】com.mysql.jdbc.Driver 与 org.gjt.mm.mysql.Driver的区别
  12. 全景感知、智能融合|视图计算平台全新发布
  13. Wargames学习笔记--Bandit
  14. 工业数据治理:全解时序数据处理工具
  15. 35岁,还学编程是不是很难
  16. PIXHAWK2.4.8飞控如果做双罗盘校准
  17. MatLab中矢量图的导出
  18. JSOI 2008-help
  19. 泰山OFFICE技术讲座:逻辑字号、中文字号、保存字号、布局字号、绘制字号
  20. 如何下载.NET Framework

热门文章

  1. Block的引用循环问题 (ARC non-ARC)
  2. 命中注定码农路[一. 重新开始]
  3. 在代码中设置TextView 的字体颜色
  4. Android获取MAC地址
  5. Nodejs 内置模块的基本使用
  6. VUE系列-Vue核心应用(二)
  7. css3实现背景渐变的方法
  8. JS-逻辑运算符-累加累减-分支循环结构-九九乘法表
  9. LeetCode-1两数之和
  10. PAT乙级 1027 打印沙漏