Python中的指针?
当我在尝试理解Python中如何使用imp.load_module时,我看到了以下代码(原始页面)。这是我第一次看到Python中的*符号,它是不是类似于指针的东西呢?
提前谢谢你!
import imp
import dbgp
info = imp.find_module(modname, dbgp.__path__)
_client = imp.load_module(modname, *info)
sys.modules["_client"] = _client
from _client import *
del sys.modules["_client"], info, _client
3 个回答
0
简单来说,它们就是用来存储另一个变量的内存地址的变量。
4
我猜你是在说这行代码 _client = imp.load_module(modname, *info)
。
不,这不是一个指针。它的作用是把作为参数传入的列表展开。下面是一个例子:
In [7]: def foo(bar, baz):
...: return bar + baz
...:
In [8]: l = [1,2]
In [9]: foo(l)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/Daenyth/<ipython console> in <module>()
TypeError: foo() takes exactly 2 arguments (1 given)
In [10]: foo(*l)
Out[10]: 3
字典也可以进行类似的展开。
In [12]: d = {'bar': 1, 'baz': 2}
In [13]: foo(**d)
Out[13]: 3