Python开发中的两个小常识

开发 后端
如果大家看一些英文文档,可能会看到两个词parameters(有时候简写为params)和arguments(有时候简写为args)。他们的中文意思都是参数。那么他们有什么区别呢?

 parameters 与 arguments 有什么区别?

如果大家看一些英文文档,可能会看到两个词parameters(有时候简写为params)和arguments(有时候简写为args)。他们的中文意思都是参数。那么他们有什么区别呢?

[[322564]]

实际上,parameters是我们在定义函数的时候,写在括号里面的参数名,而arguments是我们在调用函数的时候,传进去的具体值。

例如:

 

  1. def test(name, age=0): 
  2.     print(name, age) 
  3.  
  4. test('kingname', age=1) 

其中name和age叫做parameters,而kingname和1叫做arguments。

使用 import导入模块的优秀实践

在任何情况下都禁止使用from xxx import *这种写法。

在绝大多数情况下,把import语句写在.py文件的最上面,并且按照下面的顺序:

  1. Python 自带的标准库优先导入,例如time/os/re等等
  2. 已安装的第三方库
  3. 自己写到项目中的本地模块

在必要的时候,为了避免循环导入,可以把部分import语句写在函数里面。

有一个文件 a.py,里面开头的语句是import b。又有一个文件 b.py,里面开头的语句是import a。这样写是没有问题的。如下图所示:

 

但是,如果在a.py里面写为from b import walk,那么就会出现循环引用,导致报错。如下图所示:

 

这是由于,在a.py执行from b import walk的时候,会进入b.py文件。此时b.py文件会执行import a,但是由于a.py文件还没有执行完成,就导致b.py没有执行完成,此时walk()函数还没有被定义,所以就无法导入。

对于这种情况,如果确实代码里面需要这样引用,那么可以把from b import walk写到say()函数里面,这样就能正常导入了,如下图所示:

 

当导入某个模块特别耗时间,但它又只在某个特定的函数里面执行时,也可以把import语句写在这个函数里面。

责任编辑:华轩 来源: 未闻Code
相关推荐

2012-12-25 14:21:48

Android常识

2020-12-28 09:42:25

弱密码密码加密

2012-05-22 15:39:27

2019-08-28 10:00:34

Python测试工具命令

2015-05-15 09:37:24

iOS开发争议

2019-07-10 10:51:20

jqueryJavaScript前端

2011-04-26 13:21:18

2011-09-20 15:19:15

Python

2020-10-25 08:47:36

Python有序字典

2021-07-22 23:27:45

Python工具算法

2009-06-30 09:37:02

对象比较Java

2011-08-29 18:17:58

Ubuntu

2010-04-06 18:04:09

Oracle数据库

2010-03-16 10:43:26

Python字符串

2022-07-05 15:15:11

Python日期命令

2010-03-17 13:46:55

Python sock

2011-05-03 17:45:08

扫描仪

2010-04-08 13:55:18

Oracle数据处理

2010-07-02 12:26:51

LEACH协议

2022-06-17 09:46:51

Chrome 102Chrome浏览器
点赞
收藏

51CTO技术栈公众号