gpt4 book ai didi

python - 在交互式 Python shell 中输入对象时调用什么内置函数?

转载 作者:行者123 更新时间:2023-11-28 20:04:08 24 4
gpt4 key购买 nike

很高兴能够在 shell 中输入一个对象,并取回一些东西,例如,

>>>foo
I am foo

通常,在模块脚本中使用 print(foo) 会产生与上述情况相同的结果(我使用的是 Python 3.5)。但通常,对于复杂类的实例,您可以获得截然不同的输出。

这就提出了一个问题,当您在交互式 python shell 中键入一个对象名称并按下回车键时,究竟会发生什么?内置的叫什么?

示例:

在模块中:

print(h5file)

输出:

tutorial1.h5 (File) 'Test file' Last modif.: 'Wed Jun 8 21:18:10 2016' Object Tree: / (RootGroup) 'Test file' /detector (Group) 'Detector information' /detector/readout (Table(0,)) 'Readout example'

与 shell 输出对比

>>>h5file File(filename=tutorial1.h5, title='Test file', mode='w', root_uep='/', filters=Filters(complevel=0, shuffle=False, fletcher32=False, least_significant_digit=None)) / (RootGroup) 'Test file' /detector (Group) 'Detector information' /detector/readout (Table(0,)) 'Readout example' description := { "Country": UInt16Col(shape=(), dflt=0, pos=0), "Geo": UInt16Col(shape=(), dflt=0, pos=1), "HsCode": Int8Col(shape=(), dflt=0, pos=2), "Month": UInt16Col(shape=(), dflt=0, pos=3), "Quantity": UInt16Col(shape=(), dflt=0, pos=4),

最佳答案

print 隐式应用 str() 到每个打印的项目以获得一个字符串,而 shell 隐式应用 repr() 获得一个字符串。所以这是对象的 __str__()__repr__() 方法之间的区别(如果有的话)

>>> class A(object):
... def __str__(self):
... return "I'm friendly!"
... def __repr__(self):
... return "If different, I'm generally more verbose!"

>>> a = A()
>>> print(a)
I'm friendly!
>>> a
If different, I'm generally more verbose!

请注意,我忽略了您使用的 shell 已覆盖默认 sys.displayhook 函数的可能性。

关于python - 在交互式 Python shell 中输入对象时调用什么内置函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37715461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com