类的常用装饰器
classmethod
功能
用法
代码语言:javascript
复制@classmethod
def func(cls, ...):
do
参数介绍
cls
替代普通类函数中的self
,变为cls
,代表当前操作的是类
staticmethod
功能
- 将类函数可以不经过实例化而直接被调用,
被改装饰器调用的函数不许传递self或cls函数,
且无法在该函数内调用其他类函数或类变量
用法
代码语言:javascript
复制@staticmethod
def func(...):
do
参数介绍
property
用法
代码语言:javascript
复制@property
def func(self):
do
参数介绍
代码
代码语言:javascript
复制# coding:utf-8
class Test(object):
def __init__(self, a):
self.a = a
def run(self):
print('run')
self.dump()
self.sleep()
@classmethod
def dump(cls):
print('dump')
# cls.run()
# 无法在一个classmethod函数中调用self函数
@staticmethod
def sleep():
# self.dump()
print('i want sleep')
t = Test('a')
t.run()
# Test.dump()
# print('------')
# Test.sleep()
# t.sleep()
# t.dump()
class Test1(object):
def __init__(self, name):
self.__name = name
@property
def name(self):
return self.__name
@name.setter
def name(self, value):
self.__name = value
t1 = Test1(name='dewei')
print(t1.name)
# t1.name = '小慕'
# print(t1.name)
t1.name = '小慕'
print(t1.name)