我可以写'something '.strip()并返回something,或者我可以输入str(8)并返回'8'。同样,type ('a')返回str作为响应。str是一个函数(它将数字8转换为'8')还是一个类(它具有strip()等方法)?
'something '.strip()
something
str(8)
'8'
type ('a')
str
8
strip()
bvjxkvbb1#
它是一个类,其构造函数可以获取任何Python对象,并尝试根据语言内置的规则将其转换为字符串。它尝试做的第一件事是调用传入对象中的__str__方法,如果该方法不存在,则尝试调用__repr__方法,返回的内容用作新构建的字符串。然而,str是Python中真正的字符串类,所有字符串方法都在这里定义。
__str__
__repr__
ijxebb2r2#
str是一个类。如文档中所示
str(8) # returns '8'
正在创建一个str类型的对象。它调用str的构造函数。构造函数又调用对象的__str__函数。正如评论中所建议的,您可以使用type关键字来仔细查看所发生的情况:
type
type(str) # <class 'type'> type(str()) # <class 'str'> type('Hello, World!') # <class 'str'> type(8) # <class 'int'> type(str(8)) # <class 'str'> type(str().strip) # <class 'builtin_function_or_method'>
2条答案
按热度按时间bvjxkvbb1#
它是一个类,其构造函数可以获取任何Python对象,并尝试根据语言内置的规则将其转换为字符串。
它尝试做的第一件事是调用传入对象中的
__str__
方法,如果该方法不存在,则尝试调用__repr__
方法,返回的内容用作新构建的字符串。然而,str是Python中真正的字符串类,所有字符串方法都在这里定义。
ijxebb2r2#
str
是一个类。如文档中所示正在创建一个
str
类型的对象。它调用str
的构造函数。构造函数又调用对象的__str__
函数。正如评论中所建议的,您可以使用
type
关键字来仔细查看所发生的情况: