16

Python开发中的两个小常识

 4 years ago
source link: https://developer.51cto.com/art/202004/614646.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Python开发中的两个小常识 - 51CTO.COM

Python开发中的两个小常识

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

作者:kingname来源:未闻Code|2020-04-17 10:13

 parameters 与 arguments 有什么区别?

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

e6d496a25570c0ffecd45b3e0e1952fa.jpg-wh_651x-s_3789100938.jpg

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

  1. def test(name, age=0): 
  2.     print(name, age) 
  3. 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。这样写是没有问题的。如下图所示:

ed4b10078a4a05ac9d8f76b5645f60bf.jpg-wh_600x-s_418530523.jpg

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

9c9203109655a7df2bb8f5488d2768ec.jpg-wh_600x-s_854476859.jpg

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

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

c4635a50aa7739b3715cd55d3516887d.jpg-wh_600x-s_2371059967.jpg

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

【编辑推荐】

【责任编辑:华轩 TEL:(010)68476606】
点赞 0

关注“51CTO技术栈”微信公众号获取更多精彩内容

大家都在看猜你喜欢
好课推荐

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK