@property@staticmethod@classmethod装饰器
Posted vglede
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@property@staticmethod@classmethod装饰器相关的知识,希望对你有一定的参考价值。
@property装饰器放置在类中的无需带参数传递的函数上一行,表示该函数为类的一个属性,调用方法为:类对象.函数名
eg:
#!/usr/bin/python class test(): def __init__(self,value): self.value=value @ property def a(self): print self.value print("in the a") b=test("12") b.a [[email protected] pyscript]# python st_property_py 12 in the a
@staticmethod静态方法装饰器,放置在类中的无需带参数传递的函数上一行,表示该函数为类的一个静态方法。
@classmethod类方法装饰器,被装饰的函数是被类调用的。
[[email protected] pyscript]# cat st_property_py #!/usr/bin/python class t1: x=1 @classmethod def test(va): print(va,va.x)
t1.test() class t2(t1): x=2 t2.test()
[[email protected] pyscript]# python st_property_py (<class __main__.A at 0x7f066642b530>, 1) (<class __main__.B at 0x7f066642b668>, 2)
****静态方法和类方法虽然是给类准备的,如果实例去用,不会报错,只不过实例去调用的时候容易让人混淆*****
以上是关于@property@staticmethod@classmethod装饰器的主要内容,如果未能解决你的问题,请参考以下文章