<p>在看不到完整代码的情况下,最有可能的解释是</p>
<pre><code>root.view.window().open_file("C:/Users/lujunhao/AppData/Roaming/npm/node_modules/fis/node_modules/fis-kernel/fis-kernel.js")
</code></pre>
<p>工作,但是</p>
^{pr2}$
<p>不起作用的是<code>needOpen</code>可能对调用<code>open_file()</code>的函数不可见。例如,如果您的代码如下所示:</p>
<pre><code>needOpen = "C:/Users/lujunhao/AppData/Roaming/npm/node_modules/fis/node_modules/fis-kernel/fis-kernel.js"
def openFile(root):
root.view.window().open_file(needOpen)
openFile(root)
</code></pre>
<p>对最后一行的<code>open_file()</code>的调用将不起作用。这是因为<code>needOpen</code>是在外部命名空间中定义的,但是由于它没有作为参数传递给<code>openFile()</code>函数,函数内部的代码看不到它。要解决此问题,请将<code>needOpen</code>作为参数传递给<code>openFile()</code>函数:</p>
<pre><code>needOpen = "C:/Users/lujunhao/AppData/Roaming/npm/node_modules/fis/node_modules/fis-kernel/fis-kernel.js"
def openFile(root, needOpen):
root.view.window().open_file(needOpen)
openFile(root, needOpen)
</code></pre>
<p>现在,假设<code>needOpen</code>的定义和对<code>openFile()</code>的调用在同一个名称空间中,那么您的函数应该可以正常工作。在</p>
<hr/>
<p>至于您关于打印<code>needOpen</code>的问题,Sublime在内部将Windows风格的路径转换为Unix风格的路径,因此您看到的差异不必担心。在</p>