class method 中 self 的含义
本质
- 以下面的类和方法为例: - class A: def f(self, x): print(x)
- self本质就是- A的一个实例;- # 定义 a = A() # 创建 A 的一个实例 # 调用 a.f(1) # 1
- a.f(1)实际上就是- A.f(a, 1)的语法糖;
使用场景
动态修改成员函数
- 如果是将新函数赋值给类,那么需要预留第一个位置给 - slef;- # 定义一个新的 f def new_f(self: A, x): print(x + 1) A.f = new_f # 将新函数赋值给类 a.f(x) # 2
- 如果是将新函数赋值给类的实例,那么需要就需要去掉第一个位置的参数; - # 定义一个新的 f def new_f(x): print(x + 1) a.f = new_f # 将新函数赋值给类的实例 a.f(x) # 2
参考
Last updated