类的常用装饰器
classmethod
功能
- 将类函数可以不经过实例化而直接被调用
用法
| def func(cls, ...): | |
| do |
参数介绍
cls替代普通类函数中的self,变为cls,代表当前操作的是类
staticmethod
功能
- 将类函数可以不经过实例化而直接被调用,
被改装饰器调用的函数不许传递self或cls函数,
且无法在该函数内调用其他类函数或类变量
用法
| def func(...): | |
| do |
参数介绍
- 函数体内无cls或self参数
property
用法
| def func(self): | |
| do |
参数介绍
- 无重要参数说明
代码
| # coding:utf-8 | |
| class Test(object): | |
| def __init__(self, a): | |
| self.a = a | |
| def run(self): | |
| print('run') | |
| self.dump() | |
| self.sleep() | |
| def dump(cls): | |
| print('dump') | |
| # cls.run() | |
| # 无法在一个classmethod函数中调用self函数 | |
| 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 | |
| def name(self): | |
| return self.__name | |
| def name(self, value): | |
| self.__name = value | |
| t1 = Test1(name='dewei') | |
| print(t1.name) | |
| # t1.name = '小慕' | |
| # print(t1.name) | |
| t1.name = '小慕' | |
| print(t1.name) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZkeqのCoding日志!
评论






