小编sei*_*ica的帖子

Pycharm中的“更新Python解释器”。这是什么意思?

我注意到Pycharm IDE的底部显示有2个进程正在运行。当我单击它时,将打开一个面板,说我的Python解释器正在更新。

更新Python解释器面板Pycharm

我不太确定这里要更新什么:Python吗?康达?其他软件包(因为似乎有一些软件包,例如panda,PyQT在安装栏下弹出)?

这引出了我的下一个问题:这种更新多久会发生一次,因为此更新会大大降低我的Pycharm速度?另外,这是否意味着conda软件包会自动更新?我一直认为您必须在conda命令提示符下手动更新它们。

python ide pycharm anaconda

8
推荐指数
2
解决办法
5547
查看次数

仍然对Python中可变的默认参数值"gotcha"感到困惑

我理解一个人不应该在Python中使用可变的默认参数值(有一些例外),因为这个值只在定义函数时被评估和存储一次,而不是每次稍后调用该函数.

我对此的理解是这样的(使用下面的例子;请原谅我不精确的语言,因为我只是Python编程的初学者,因为这个而被困在我教科书的功能章节中):

def f(x = [1, 2, 3]):
    x.append(4)
    print(x)

f()
f()
Run Code Online (Sandbox Code Playgroud)

1)定义函数f,x(f中的局部变量)采用默认变量[1,2,3](甚至在调用函数之前)

2)当调用f()时,x仍然是[1,2,3],因为没有传递给它的参数,并且x继续具有其默认值

3)使用append修改x,变为[1,2,3,4],并按原样打印

然而,这是我的困惑所在.我假设:

4)当f结束时,x被破坏(在堆栈中或你称之为的任何东西)并且不再与列表对象[1,2,3,4]**相关联**

5)回收列表对象[1,2,3,4],因为没有变量引用它了

因此,

6)当第二次调用f()时,我希望Python输出一个错误,因为x现在不再有与之关联的值.换句话说,当Python被回收/销毁时,Python如何重用上次评估的默认值?

感谢您的所有帮助和解释!

**我从Ned Batchelder的变量名称分配页面得到的这种理解(见下文) Net Batchelder的变量赋值函数

python default function

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

标签 统计

python ×2

anaconda ×1

default ×1

function ×1

ide ×1

pycharm ×1