Python中一行和多行import模块问题
Python 不建议用一行 import 所有模块,而是推荐用多行 import 来导入模块。更多的是出于操作便利性的原因,与代码本身无关:
更易于阅读
- import fred 比 import barney, betty, wilma, fred, bambam, pebbles 更容易找。
更易于搜索
- 能通过关键词马上 import fred 搜寻到位置,而 import barney, fred 不行。
更易于编辑:
- 插入和移除更快捷;
- 每行只声明一个模块,因此你不需要费力去找模块在哪;
- 移动模块时只需移动整行即可;
- 复制多个模块到其它 Python 文件时只需复制黏贴几行即可,不用在一行 import 语句里费力找你想要的模块。
多行 import 更易于维护
一旦模块有所修改,你能直接根据报错的行数知道是哪个模块出错了,而一行 import 会很麻烦;
如果漏掉或者添加模块,你还能通过行数和变更位置感知到。
总结
多行 import 更多地是为了方便编辑(复制、粘贴、删除)以及维护,而提到的易于搜索似乎无足轻重,因为多数人应该会把 import 写在 Python 文件开头,搜索文件前部应该是不难的。
您可能感兴趣的文章:
- python 环境变量和import模块导入方法(详解)
- python在不同层级目录import模块的方法
相关推荐
-
python 环境变量和import模块导入方法(详解)
1.定义 模块:本质就是.py结尾的文件(逻辑上组织python代码)模块的本质就是实现一个功能 文件名就是模块名称 包: 一个有__init__.py的文件夹:用来存放模块文件 2.导入模块 import 模块名 form 模块名 import * from 模块名 import 模块名 as 新名称 3. 导入模块本质 import 模块名 ===> 将模块中所有的数据赋值给模块名,调用时需要模块名.方法名() from 模块名 import 方法名 ==>将该方法单独放到当前文件运行一遍
-
python在不同层级目录import模块的方法
使用python进行程序编写时,经常会使用第三方模块包.这种包我们可以通过python setup install 进行安装后,通过import XXX或from XXX import yyy 进行导入.不过如果是自己遍写的依赖包,又不想安装到python的相应目录,可以放到本目录里进行import进行调用:为了更清晰的理清程序之间的关系,例如我们会把这种包放到lib目录再调用.本篇就针对常见的模块调用方法汇总下. 一.同级目录下的调有 程序结构如下: -- src |-- mod1.p
-
Python中一行和多行import模块问题
Python 不建议用一行 import 所有模块,而是推荐用多行 import 来导入模块.更多的是出于操作便利性的原因,与代码本身无关: 更易于阅读 import fred 比 import barney, betty, wilma, fred, bambam, pebbles 更容易找. 更易于搜索 能通过关键词马上 import fred 搜寻到位置,而 import barney, fred 不行. 更易于编辑: 插入和移除更快捷: 每行只声明一个模块,因此你不需要费力去找模块在哪:
-
python中pandas.DataFrame对行与列求和及添加新行与列示例
本文介绍的是python中pandas.DataFrame对行与列求和及添加新行与列的相关资料,下面话不多说,来看看详细的介绍吧. 方法如下: 导入模块: from pandas import DataFrame import pandas as pd import numpy as np 生成DataFrame数据 df = DataFrame(np.random.randn(4, 5), columns=['A', 'B', 'C', 'D', 'E']) DataFrame数据预览: A
-
Python中多个数组行合并及列合并的方法总结
采用numpy快速将两个矩阵或数组合并成一个数组: import numpy as np 数组 a = [[1,2,3],[4,5,6]] b = [[1,1,1],[2,2,2]] 1.数组纵向合并 1) c = np.vstack((a,b)) c = array([[1, 2, 3], [4, 5, 6], [1, 1, 1], [2, 2, 2]] 2) c = np.r_[a,b] c = array([[1, 2, 3], [4, 5, 6], [1, 1, 1], [2, 2, 2
-
python中使用sys模板和logging模块获取行号和函数名的方法
对于python,这几天一直有两个问题在困扰我:1.python中没办法直接取得当前的行号和函数名.这是有人在论坛里提出的问题,底下一群人只是在猜测python为什么不像__file__一样提供__line__和__func__,但是却最终也没有找到解决方案.2.如果一个函数在不知道自己名字的情况下,怎么才能递归调用自己.这是我一个同事问我的,其实也是获取函数名,但是当时也是回答不出来. 但是今晚!所有的问题都有了答案.一切还要从我用python的logging模块说起,logging中的for
-
Python中强大的命令行库click入门教程
前言 我们的游戏资源处理工具是Python实现的,功能包括csv解析,UI材质处理,动画资源解析.批处理,Androd&iOS自动打包等功能.该项目是由其他部门继承过来的,由于绝大部分代码不符合我们的业务需求,所以进行了大重构.删除了所有业务代码,仅保留了python代码框架.项目中命令行参数解析是自己实现的,极其不优雅,也忍了这么久.打算找时间用click重写.所以最近学习了click,下面本文的内容是click的入门教程,初学者们可以来一起学习学习. 官网镜像地址: http://click
-
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
程序中常常需要复制一个对象, 按思路应该是这样的 a = [1, 2, 3] b = a # [1, 2, 3] print b 已经复制好了,但是现在得改变一下第一个元素的值把它改成5 b[0] = 5 # [5, 2, 3] print b # [5, 2, 3] print a 我改变了b的第一个元素的值,但是a的值也改变了,这是因为python中的=是引用.a和b指向的是相同的列表,所以改变列表会出现以上的结果. 解决方法是切片操作 a = [1, 2, 3] b = a[:] b[0]
-
Python中的main函数与import用法
目录 main函数与import用法 目录结构如下 main函数的作用以及解释 python 中name == ‘__main__’ 的作用 main函数与import用法 在python中,如果自己封装的库文件中有函数外的语句,那么这些语句是会在库函数被导入时自动执行的,这样就会出现一些奇怪的问题,一个例子如下所示. 目录结构如下 A.py B.py B.py中的内容如下: def print_B(): print("B") print("starting B&qu
-
python中常用的各种数据库操作模块和连接实例
工作中,经常会有用python访问各种数据库的需求,比如从oracle读点配置文件或者往mysql写点结果信息之类的.这里列一下可能用到的各个模块. sqlite3: 内置模块用sqlite,有时候确实很方便,我觉得它确实做到了宣称的"零配置".python自2.5版以来,就内置了对sqlite3的支持,使用也非常简单,按照文档上来: 复制代码 代码如下: #打开db文件,获得连接conn = sqlite3.connect('数据文件名')#获得游标c = conn.cursor()
-
Python中的协程(Coroutine)操作模块(greenlet、gevent)
目录 一.协程介绍 1.介绍 2.举例 3.优点如下: 4.缺点如下: 5.总结协程特点: 二.greenlet(绿叶)模块 1.安装模块 2.greenlet实现状态切换 3.效率对比 三.gevent模块 1.安装 2. 用法介绍 1.遇到io主动切换 2. 查看threading.current_thread().getName() 3.Gevent之同步与异步 4.Gevent之应用 1. 服务端 2.多线程并发多个客户端 一.协程介绍 协程:英文名Coroutine,是单线程下的并发,
-
Python中import导入上一级目录模块及循环import问题的解决
import上一级目录的模块 python中,import module会去sys.path搜索,sys.path是个列表,并且我们可以动态修改. 要import某个目录的module,我们sys.path.insert(0,somedir)来加入搜索路径,就可以import了. 既然这样,要import上一级目录的module,可以sys.path.insert(0,parentdir). 不过这种写绝对路径的方式,如果文件放到其它地方,就不行了. 所以用动态方法来获取上一级目录. impor
随机推荐
- 详解C++中String类模拟实现以及深拷贝浅拷贝
- Lua编程示例(七):协同程序基础逻辑
- Golang如何实现任意进制转换的方法示例
- Cont()与Where().Count()有时性能差别如此之大!
- Base64编码加密JS代码网页版
- java区分绝对路径和相对路径的方法
- Linux 7下脚本安装配置oracle 11g r2教程
- 浅谈Javascript事件对象
- PHP简单实现DES加密解密的方法
- C#图书管理系统 附源码下载
- 将文本输入框的背景设置成透明
- Python安装第三方库的3种方法
- js日期、星座的级联显示代码
- Jquery on绑定的事件 触发多次实例代码
- JQuery EasyUI 数字格式化处理示例
- Ctrl+Enter提交内容信息
- mybatis教程之增删改查_动力节点Java学院整理
- C# 去除首尾字符或字符串的方法
- 留言板翻页的实现详解
- Java实现实时监控目录下文件变化的方法