小编Che*_*ney的帖子

重新分配python模块的变量,但是函数使用var作为默认值不会改变

有示例代码:

# b.py
c = False
def d(i=c):
    print(i, c)
Run Code Online (Sandbox Code Playgroud)

我想写a.py让的输出b.dTrue, True:

# a.py
import b
b.c = True
b.d()
Run Code Online (Sandbox Code Playgroud)

但输出是False, True.

那么,whyhow得到它?


写完回答

为什么:

# `inspect` may be useful
import inspect
v = True
def f(i=v):
    print(i, v)

s = inspect.signature(f)
s.parameters
Out[6]: mappingproxy({'i': <Parameter "i=True">})
Run Code Online (Sandbox Code Playgroud)

python

1
推荐指数
1
解决办法
40
查看次数

标签 统计

python ×1