有些东西让我感到困扰的是包装中的进口.想象一下,我有以下目录结构:
pack
??? __init__.py
??? sub1
? ??? __init__.py
? ??? mod1.py
??? sub2
??? __init__.py
??? mod2.py
在mod1.py里面我有以下代码来导入mod2.py:
# mod1.py
import pack.sub2.mod2
pack.sub2.mod2.helloworld()
Run Code Online (Sandbox Code Playgroud)
我在包含导入pack/sub1/mod1.py的包的目录中有一个main.py文件
mod1.py如何访问pack?pack与mod1.py不在同一目录中.python会自动将最顶层的包添加到sys.path吗?
当我运行以下代码时,我收到一个错误,为什么会这样?参数的顺序不正确吗?
def f(a, b, c, d):
print a, b, c, d
f(1, b=2, *(3,), **{'d': 4})
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
Traceback (most recent call last):
File "/home/asad/scripts/l.py", line 9, in <module>
f(1, b=2, *(3,), **{'d': 4})
TypeError: f() got multiple values for keyword argument 'b'
[Finished in 0.1s with exit code 1]
Run Code Online (Sandbox Code Playgroud)