首先记录一个问题(python什么时候才会用到反运算的魔法方法?)
答案:如果a+b a对象的__add__方法没有实现(如 1+b)或者不支持相应的操作
而题干的问题为:
基类改变时只需要修改为基类取别名这条语句即可
BaseAlias = BaseClass # 为基类取别名
class Derived(BaseAlias):
def meth(self):
BaseAlias.meth(self) # 通过别名访问基类
...
如何使用类的静态属性:只需要引用类名.属性名即可
#计算该类被实例化的次数
class C:
count = 0 # 静态属性
def __init__(self):
C.count = C.count + 1 # 类名.属性名的形式引用
def getCount(self):
return C.count
Python staticmethod() 函数
python staticmethod 返回函数的静态方法。
该方法不强制要求传递参数,如下声明一个静态方法:
class C(object):
@staticmethod
def f(arg1, arg2, ...):
...
以上实例声明了静态方法 f,类可以不用实例化就可以调用该方法 C.f(),当然也可以实例化后调用 C().f()。
函数语法
staticmethod(function)
参数说明:
- 无
实例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class C(object):
@staticmethod
def f():
print('runoob');
C.f(); # 静态方法无需实例化
cobj = C()
cobj.f() # 也可以实例化后调用