为什么Visual Studio Code中的Python repl告诉我我的对象未定义?

哈腰

Test.py:

def test():
    print("Hello World")

test()

当我使用解释器运行此命令时(ctrl + shift + p> Python:选择“解释器”>“目标解释器”),它可以工作。

然后,如果我尝试运行repl(ctrl + shift + p> Python:启动REPL),则会在终端中看到repl启动:

PS C:\Development\personal\python\GettingStarted> & c:/Development/personal/python/GettingStarted/.venv/Scripts/python.exe
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:20:19) [MSC v.1925 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 

但是,如果我尝试在repl中执行定义的方法,则会收到未定义的错误:

>>> test() 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'test' is not defined

正确的方法#1导入和使用:

>>> import test
Hello World
>>> test.test()
Hello World

正确的方法#2导入和使用:

>>> from test import test
Hello World
>>> test()
Hello World

如果您同时获得ImportError上述两种方法的,则说明您从错误的目录运行Python REPL。

文件名和函数名相同是有点令人困惑。

test()在文件末尾有一个调用(导致在导入调用该函数)也是不寻常的通常,它的包装方式是if __name__ == '__main__': test()希望避免import一次调用,而是在以脚本形式从命令行运行时进行调用。

Import test 不起作用,因为Python关键字是小写且区分大小写的。

from test import Test 不起作用,因为Python标识符(例如函数名)区分大小写。

import Test 可能适用于Windows(但不适用于macOS,Linux和许多其他操作系统),因为Windows上的文件名不区分大小写。

import test.py不起作用,因为不允许将.py扩展名作为导入模块名称的一部分。

import test from test不起作用,因为from ...必须先于import ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么Visual Studio Code无法识别我的WSL bash python?

为什么Typescript会在Visual Studio Code中忽略我的tsconfig.json?

为什么Visual Studio告诉我未定义AddJsonFile()方法?

为什么我不能在Visual Studio中编译Apache Cordova项目?

为什么我的project.json / xproj项目无法在Visual Studio 15中打开(预览)?

为什么我的Visual Studio 2015企业版中缺少选项?

为什么Visual Studio在错误的文件夹中寻找我的gulpfile?

为什么Visual Studio告诉我我需要引用System.Private.CoreLib?

为什么Visual Studio代码告诉我cout不是std名称空间的成员?

为什么我不能在Visual Studio中合并项目SDK版本?

为什么我在执行常规教程时在Visual Studio Code中显示了这么多“问题”?

为什么我的Visual Studio Code任务没有执行?

为什么这告诉我我的变量未定义?

为什么我的代码无法在Visual Studio Code中运行?

为什么我的SSIS工具箱在Visual Studio 2019社区中为空?

为什么在Visual Studio中我= i ++使其增加

为什么我们总是需要在Visual Studio中通过nuget安装efcore?

您能告诉我为什么在随机点击图像时出现“未定义”吗?

为什么我的实时服务器不能在Visual Studio代码中工作?

为什么尽管指向我的虚拟环境,Visual Studio Code为什么仍使用全局python配置?

为什么在Visual Studio Code中执行git pull后,我仍未提交更改?

在Visual Studio 2013中,为什么我的断点有时会“分离”?

为什么我不能在Visual Studio 2013中调用CTime :: GetAsDBTIMESTAMP?

请告诉我,为什么滚动视图在android studio中不起作用?

为什么我在Visual Studio“ 2013” SDK示例中遇到问题?

谁能告诉我为什么此文本不在Android Studio中居中?

为什么我不能在Visual Studio 2015中使用TypeScript 1.8

在我的猜测中,它告诉我我的 Number 变量未定义的数字

为什么 Visual Studio 以不同的方式对待我的对象?