jvr*_*sem -2 python stdout output python-3.5
这是一个最小工作示例(MWE),保存为mwe.py:
import sys
def f(n):
print("Testing print()...")
sys.stdout.write("Calculating f({})...".format(n))
Run Code Online (Sandbox Code Playgroud)
从命令行运行时,我得不到任何输出:
username@hostname:~/mydir$ python mwe.py 'f(99)'
username@hostname:~/mydir$
Run Code Online (Sandbox Code Playgroud)
从内部运行时python
我得到输出(删除了一些信息):
username@hostname:~/mydir$ python
Python 3.5.4 (default, DATE, HH:MM:SS)
[GCC X.X.X Compatible Apple LLVM X.X.X (clang-X.X.X)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from mwe import f
>>> f(99)
Testing print()...
Calculating f(99)...
>>>
Run Code Online (Sandbox Code Playgroud)
为什么这些输出语句在命令行内python但不在命令行中?
python mwe.py 'f(99)'并不意味着" f从mwe.py参数运行函数99".如果您想从命令行执行此操作,则可以执行
python -c 'import mwe; mwe.f(99)'
Run Code Online (Sandbox Code Playgroud)
python mwe.py 'f(99)'表示" mwe.py使用sys.argv[1]set设置为字符串运行脚本"f(99)"".该脚本mwe.py根本不检查sys.argv或打印任何内容; 它只是定义一个函数并结束.
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |