我正在尝试使用python模块。
我的代码是,
python module.py
当我用解释器
执行代码时main
它给出输出(即模块名称为)
module
当我将模块导入另一个文件并调用模块时,它将输出作为模块名称(预期)。
"scripts": {
"build-prod": "node --max_old_space_size=5048 ./node_modules/@angular/cli/bin/ng build --prod --aot --no-sourcemap"
}
根据docs,它应该给出模块名称作为输出。为什么输出变化?
答案 0 :(得分:2)
主脚本始终称为__main__
。这是完全正确的行为。
从您链接到的同一页面, 在preceding Executing modules as scripts section中,您会找到:
使用
运行Python模块时python fibo.py <arguments>
模块中的代码将被执行,就像您导入它一样,但
__name__
设置为"__main__"
。
对于您导入的所有内容,__name__
将反映首次可用的模块名称。
另见Interface options documentation:
<script>
[...]
如果脚本名称直接引用Python文件,则包含该文件的目录将添加到sys.path的开头,并且该文件将作为
__main__
模块执行。
和__main__
Top-level script environment documentation:
此模块表示解释器主程序执行的(否则为匿名)作用域 - 从标准输入,脚本文件或交互式提示读取命令。