我希望在eval语句中使用类型函数,因此我只需要该函数的字符串表示形式。例如:
print(type("cow"))
<class 'str'>
在这里我需要它来输出'str'。但是当我尝试:
type("cow").__str__()
TypeError: descriptor '__str__' of 'str' object needs an argument
type("cow").__repr__()
TypeError: descriptor '__repr__' of 'str' object needs an argument
奇怪的是,如果Jupyter笔记本是单元格中的最后一行,则可以正确打印。
为什么会发生此错误?仅获取Type字符串的正确方法是什么?
答案 0 :(得分:3)
也许你想要
type("cow").__name__
?
答案 1 :(得分:2)
鉴于问题模棱两可,print(type("cow"))
有点误导。是 牛 :
无论如何,这是一种适用于两者的方式:
>>> cow = "Moo!!" >>> >>> # Variable ... >>> cow.__class__.__name__ 'str' >>> # String literal ... >>> "cow".__class__.__name__ 'str'
有关更多详细信息,请选中[Python 3.Docs]: Built-in Types - Special Attributes。