在python3中一些有高级语法,今天简单介绍一下
- @staticmethod
静态方法 - @classmethod
类方法 - @property
属性方法
@staticmethod【静态方法】
通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问实例变量和类变量的方法,其实相当于跟类本身已经没什么关系了,它与类唯一的关联就是需要通过类名来调用这个。
class Demo(object):
@staticmethod
def func_statc():
print("我是静态方法")
@staticmethod
def func_statc2(str):
print("我是静态方法--%s" % str)
# 使用方法
Demo.func_statc() #我是静态方法
Demo.func_statc2("参数") #我是静态方法--参数
可以看出来,他的调用方法很简单,直接用【实例名称】调用【静态方法名称】既可以。
@classmethod【类方法】
类方法通过@classmethod装饰器实现,类方法和普通方法的区别是, 类方法只能访问类变量,不能访问实例变量
class Demo(object):
name = 'GPF'
def __init__(self, name):