作者:kingname
parameters 与 arguments 有什么区别?
如果大家看一些英文文档,可能会看到两个词parameters
(有时候简写为params
)和arguments
(有时候简写为args
)。他们的中文意思都是参数。那么他们有什么区别呢?
实际上,parameters
是我们在定义函数的时候,写在括号里面的参数名,而arguments
是我们在调用函数的时候,传进去的具体值。
例如:
def test(name, age=0):
print(name, age)
test('kingname', age=1)
其中name
和age
叫做parameters
,而kingname
和1
叫做arguments
。
使用 import导入模块的最佳实践
在任何情况下都禁止使用from xxx import *
这种写法。
在绝大多数情况下,把import
语句写在.py
文件的最上面,并且按照下面的顺序:
- Python 自带的标准库优先导入,例如
time
/os
/re
等等 - 已安装的第三方库
- 自己写到项目中的本地模块
在必要的时候,为了避免循环导入,可以把部分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
语句写在这个函数里面。