str.center('a', 3)和'a'.center(3)作用是一样的

发布时间 2023-05-20 23:38:00作者: sangern
>>> 'a'.upper()
'A'
>>> str.upper('a')
'A'

>>> type('a'.upper)
<class 'builtin_function_or_method'>
>>> type(str.upper)
<class 'method_descriptor'>

>>> 'a'.upper() == str.upper('a')
True
>>> 'a'.upper() is str.upper('a')
False

  

使用“类型”对象我可以访问字符串方法,就像它们是静态函数一样。

在 Python 中,类上的所有方法都惯用地采用“self”参数。“self”参数告诉 Python 该方法被调用的类的哪个实例。在类实例上调用方法时,这通常会隐式传递参数
'a'.upper()

但是,也可以选择使用类 Object,并显式传递类实例:
str.upper('a')

所以 'a'.upper() 等效于 str.upper('a'),将 str 实例“a”传递给对象,显式地执行通常隐式的操作。

o.method(x) 和 Type.method(o, x)
只有一种显而易见的方法:o.method(x)
有一种调用任何方法的不明显方式 :Type.method(o, x)

o.method(1)可以将其视为 C.method(o, 1) 的简写。 method_descriptor 是实现该功能的机制的一部分。