python str -函数、类或方法

wz3gfoph  于 2023-01-04  发布在  Python
关注(0)|答案(2)|浏览(109)

我可以写'something '.strip()并返回something,或者我可以输入str(8)并返回'8'。同样,type ('a')返回str作为响应。str是一个函数(它将数字8转换为'8')还是一个类(它具有strip()等方法)?

bvjxkvbb

bvjxkvbb1#

它是一个类,其构造函数可以获取任何Python对象,并尝试根据语言内置的规则将其转换为字符串。
它尝试做的第一件事是调用传入对象中的__str__方法,如果该方法不存在,则尝试调用__repr__方法,返回的内容用作新构建的字符串。
然而,str是Python中真正的字符串类,所有字符串方法都在这里定义。

ijxebb2r

ijxebb2r2#

str是一个类。如文档中所示

str(8) # returns '8'

正在创建一个str类型的对象。它调用str的构造函数。构造函数又调用对象的__str__函数。
正如评论中所建议的,您可以使用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'>

相关问题