我可以写'something '.strip()
并获得something
作为回报,或者我可以输入str(8)
并获得'8'
作为回报。此外,type ('a')
会返回str
作为回复。 str
是一个函数(将数字8
转换为'8'
)还是一个具有strip()
等方法的类?
答案 0 :(得分:2)
这是一个类,它的构造函数可以获取任何Python对象,并尝试根据语言中内置的规则将其转换为字符串。
它尝试做的第一件事是在传入的对象中调用__str__
方法。如果不存在,则尝试调用__repr__
方法。返回的任何内容都将用作新构建的字符串。
但是,str是Python中的 字符串类,所有字符串方法都是定义的。
答案 1 :(得分:1)
str
是一个班级。如documentation
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'>