<p>使用<code>fixed</code>伪小部件是向交互函数传递额外参数的一种方式,这些参数不显示为小部件。参见:<a href="https://ipywidgets.readthedocs.io/en/latest/examples/Using%20Interact.html#Fixing-arguments-using-fixed" rel="nofollow noreferrer">https://ipywidgets.readthedocs.io/en/latest/examples/Using%20Interact.html#Fixing-arguments-using-fixed</a></p>
<p>但是,<code>fixed</code>的实现非常简单(<code>interaction.py</code>):</p>
<pre><code>from traitlets import HasTraits, Any, Unicode
class fixed(HasTraits):
"""A pseudo-widget whose value is fixed and never synced to the client."""
value = Any(help="Any Python object")
description = Unicode('', help="Any Python object")
def __init__(self, value, **kwargs):
super(fixed, self).__init__(value=value, **kwargs)
def get_interact_value(self):
"""Return the value for this widget which should be passed to
interactive functions. Custom widgets can change this method
to process the raw value ``self.value``.
"""
return self.value
</code></pre>
<p>因此,您可以编写自己的伪小部件<code>fixed_copy</code>:</p>
^{pr2}$
<p>它很好地显示了修改后的<code>df</code>,但之后,<code>df</code>的值仍然是:</p>
<pre><code> 0
0 1
1 2
2 3
</code></pre>