首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中,当您看到一个变量的输出而不打印它时,它被称为什么?

在Python中,当您看到一个变量的输出而不打印它时,它被称为什么?
EN

Stack Overflow用户
提问于 2019-11-17 04:47:01
回答 3查看 2.5K关注 0票数 5

在Python中,您可以在不打印变量的情况下查看该变量的值,例如:

代码语言:javascript
复制
>>> a = 'hello world'
>>> a
hello world

这与打印print(a)不同,但我仍然能够看到类似的输出。这种可变印刷的技术术语是什么?

作为区别的一个例子,下面展示了Jupyter Notebook如何为这两种类型的打印打印数据帧:

EN

回答 3

Stack Overflow用户

发布于 2019-11-17 04:50:26

您在REPL中执行代码;P代表“打印”。

它是由控制台隐式打印的。

票数 6
EN

Stack Overflow用户

发布于 2019-11-17 04:51:41

您看到的不是Python,而是Python shell的(空闲)行为。按照它的构建方式,它会打印出您指定的项的类型或值。实际的Python将在.py文件中包含以下代码:

代码语言:javascript
复制
a = 'hello world'
a

如果执行python test.py,则什么也看不到,因为a返回的值将被自动丢弃。cli的工作方式就像那里有一个隐式的print()语句。

票数 3
EN

Stack Overflow用户

发布于 2019-11-17 05:18:25

您看到的是解释器在交互模式下返回到全局名称空间的最后一个表达式repr。这与a打印输出有本质上的不同,尽管它们确实转到同一个流。

对于像整数这样的简单对象,它们看起来是一样的。

代码语言:javascript
复制
>>> x = 1
>>> print(x)
1
>>> x
1

不同之处在于,print将对象的字符串表示形式发送到STDOUT。输入一个变量并按enter将显示该对象的repr。对我来说,最大的区别是后者可以通过向表达式添加赋值来轻松捕获,即y = x。而print输出则更难以捕获。

这就是为什么我使用短语“返回x的值”或“返回x”。这表明,如果您希望将返回捕获为另一个变量,则可以这样做。

下面是一个简短的例子来说明print和repr之间的区别。

代码语言:javascript
复制
>>> class Foo:
...     def __repr__(self):
...         return f'<Foo at 0x{id(self):x}>'
...     def __str__(self):
...         return 'Foo-object'
... 
>>> f = Foo()
>>> print(f)
Foo-object
>>> f
<Foo at 0x17416af3c18>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58895060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档