只操作类的属性,不处理实例对象属性,无self方法函数。
上边必须写@staticmethod,如果不写@staticmethod则方法被认为是实例方法,要求其第一个参数为self。
静态方法可以通过类调用、实例调用触发。可被继承,子类或子类实例对象依然可以调用。
_________________________________________________________________
class aa:
x = 100
def __init__(self):
self.x = 10
self.y = 12
def hello(self, x):
return x + 1
@staticmethod
def pr():
print ‘aa class x ‘, aa.x
class bb(aa):
def __init__(self):
aa.__init__(self)
self.z = 14
a = aa()
print a.x, a.y
a.pr()
aa.pr()
b = bb()
print b.x, b.y
_________________________________________________________________
运行结果如下
10 12
aa class x 100
aa class x 100
10 12
aa class x 100
aa class x 100
_________________________________________________________________
相关文章
- 10-30dagger:定义在其构造函数中使用上下文的可注入类的正确方法
- 10-30Python的hasattr() getattr() setattr() 函数使用方法详解
- 10-30python – 使用两个不同的decorator实现来装饰所有类方法的Metaclass
- 10-30在Python中,是否可以使用相同的装饰器来装饰类和非类方法?
- 10-30如何在不为每个方法反复输入的情况下装饰类的所有函数?
- 10-30python 函数名的应用(第一类对象),闭包,迭代器
- 10-30C++ 类 & 对象-C++ 内联函数-C++ this 指针-C++ 类的静态成员
- 10-30类的静态成员变量和静态成员函数
- 10-30当函数返回None或引发异常时,使用Python的默认值的方法是什么?
- 10-30python – 编写单元测试类的__init__方法