Python 什么';是否调用了re variable.methodName()函数/方法?

Python 什么';是否调用了re variable.methodName()函数/方法?,python,string,class,methods,Python,String,Class,Methods,超级简单的问题:这些类型的方法/函数叫什么 "Some random string".upper() "A string in python".lower() "A formatted string {}".format("in Python") 我真的试着查找我能找到的所有东西以及我如何制作它们,但据我所知,它们被称为“类方法”,这是一个和天空一样宽泛的术语。我问了我的CS老师,但他也没有给我一个真正的答案。他们都是内置函数或方法: >>> type('ABC'.lower

超级简单的问题:这些类型的方法/函数叫什么

"Some random string".upper()
"A string in python".lower()
"A formatted string {}".format("in Python")

我真的试着查找我能找到的所有东西以及我如何制作它们,但据我所知,它们被称为“类方法”,这是一个和天空一样宽泛的术语。我问了我的CS老师,但他也没有给我一个真正的答案。

他们都是
内置函数或方法

>>> type('ABC'.lower)
<class 'builtin_function_or_method'>
>>> 

使用
type
执行此操作。

这些被称为实例方法,因为它们对类的实例进行操作,在本例中,
“一些随机字符串”
str
类的实例,而
upper()
方法直接对该实例本身进行操作

区分它们的一个好方法是问问自己,该方法是否需要关于特定实例的信息?例如,
upper()
是否需要了解特定字符串实例中的文本才能执行其工作

相比之下,类方法不在类的特定实例上操作。比如说,

返回由给定字节数组表示的整数

>>> int.from_bytes(b'\x00\x10', byteorder='big')
16
>>> int.from_bytes(b'\x00\x10', byteorder='little')
4096
>>> int.from_bytes(b'\xfc\x00', byteorder='big', signed=True)
-1024
>>> int.from_bytes(b'\xfc\x00', byteorder='big', signed=False)
64512
>>> int.from_bytes([255, 0, 0], byteorder='big')
16711680

在这种情况下,方法
from_bytes
不需要关于int类的任何特定实例的信息,因为它是构造实例的方法。

我的意思是,它们是类方法。在这个例子中,需要意识到的是,所讨论的类是
str
,我有一种感觉,它会是这样的,但我无法找到细节。我可能在搜索
String
,而不是
str
>>> int.from_bytes(b'\x00\x10', byteorder='big')
16
>>> int.from_bytes(b'\x00\x10', byteorder='little')
4096
>>> int.from_bytes(b'\xfc\x00', byteorder='big', signed=True)
-1024
>>> int.from_bytes(b'\xfc\x00', byteorder='big', signed=False)
64512
>>> int.from_bytes([255, 0, 0], byteorder='big')
16711680