str - 功能,类或方法

时间:2018-04-19 13:58:24

标签: python

我可以写'something '.strip()并获得something作为回报,或者我可以输入str(8)并获得'8'作为回报。此外,type ('a')会返回str作为回复。 str是一个函数(将数字8转换为'8')还是一个具有strip()等方法的类?

2 个答案:

答案 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'>