前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 类的常用装饰器

Python 类的常用装饰器

作者头像
Zkeq
发布2022-05-18 14:29:42
3110
发布2022-05-18 14:29:42
举报
文章被收录于专栏:Zkeq

类的常用装饰器

classmethod
功能
  • 将类函数可以不经过实例化而直接被调用
用法
代码语言:javascript
复制
@classmethod
def func(cls, ...):
	do
参数介绍
  • cls替代普通类函数中的self,
  • 变为cls,代表当前操作的是类
staticmethod
功能
  • 将类函数可以不经过实例化而直接被调用, 被改装饰器调用的函数不许传递self或cls函数, 且无法在该函数内调用其他类函数或类变量
用法
代码语言:javascript
复制
@staticmethod
def func(...):
	do
参数介绍
  • 函数体内无cls或self参数
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)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 类的常用装饰器
    • classmethod
      • 功能
      • 用法
      • 参数介绍
    • staticmethod
      • 功能
      • 用法
      • 参数介绍
    • property
      • 用法
      • 参数介绍
    • 代码
    相关产品与服务
    日志服务
    日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档