当前位置: 首页 > wzjs >正文

检察院门户网站建设自查报告给人做设计的网站

检察院门户网站建设自查报告,给人做设计的网站,佛山微网站建设哪家专业,四川省建筑施工企业安管人员考试装饰器不仅可以用于函数,还能作用于类。将装饰器应用于类时,其核心原理与作用于函数类似,都是通过接收一个类作为输入,然后返回一个新的类或者修改后的原类,以此来为类添加额外的功能 简单的类装饰器 def add_method…

装饰器不仅可以用于函数,还能作用于类。将装饰器应用于类时,其核心原理与作用于函数类似,都是通过接收一个类作为输入,然后返回一个新的类或者修改后的原类,以此来为类添加额外的功能

简单的类装饰器

def add_method(cls):def new_method(self):print("这是新添加的方法")cls.new_method = new_methodreturn cls@add_method
class MyClass:def __init__(self):passobj = MyClass()
obj.new_method()

add_method 是一个类装饰器,它接收一个类 cls 作为参数
在装饰器内部,定义了一个新的方法 new_method,并将其添加到传入的类 cls 中
最后返回修改后的类 cls
使用 @add_method 装饰 MyClass 类,相当于执行了 MyClass = add_method(MyClass)
这样 MyClass 类就拥有了新添加的 new_method 方法

带参数的类装饰器

def add_attribute(attr_name, attr_value):def decorator(cls):setattr(cls, attr_name, attr_value)return clsreturn decorator@add_attribute('new_attr', 123)
class AnotherClass:def __init__(self):passprint(AnotherClass.new_attr)

add_attribute 是一个带参数的类装饰器,它接收两个参数 attr_name 和 attr_value,用于指定要添加的属性名和属性值
add_attribute 函数返回一个装饰器函数 decorator
decorator 函数接收类 cls 作为参数,使用 setattr 函数为类 cls 添加指定的属性
最后返回修改后的类 cls

使用 @add_attribute('new_attr', 123) 装饰 AnotherClass 类,为该类添加了一个名为 new_attr、值为 123 的属性

基于类的装饰器

class CountInstances:def __init__(self, cls):self.cls = clsself.instances_count = 0def __call__(self, *args, **kwargs):instance = self.cls(*args, **kwargs)self.instances_count += 1print(f"已创建 {self.instances_count}{self.cls.__name__} 类的实例")return instance@CountInstances
class MyTestClass:def __init__(self):passobj1 = MyTestClass()
obj2 = MyTestClass()

CountInstances 是一个基于类的装饰器

__init__ 方法接收被装饰的类 cls 作为参数,并初始化一个实例计数器 instances_count
__call__ 方法使得 CountInstances 类的实例可以像函数一样被调用。在 __call__ 方法中,创建被装饰类的实例,同时更新实例计数器,并打印相关信息,最后返回创建的实例

使用 @CountInstances 装饰 MyTestClass 类,每次创建 MyTestClass 类的实例时,都会触发 CountInstances 类的 __call__ 方法,从而实现对实例创建次数的统计

@CountInstances 是装饰器语法,作用相当于执行了 MyTestClass = CountInstances(MyTestClass)
将 MyTestClass 类作为参数传递给 CountInstances 类的构造函数,得到一个 CountInstances 类的实例,然后将这个实例赋值给 MyTestClass

此时,MyTestClass 实际上变成了 CountInstances 类的实例,而不再是原来的 MyTestClass 类


文章转载自:

http://BO87kdyR.ymjgx.cn
http://DFLpZTLy.ymjgx.cn
http://szDMcwhl.ymjgx.cn
http://UWClCUZr.ymjgx.cn
http://x6xOHuJR.ymjgx.cn
http://545ld5kX.ymjgx.cn
http://XR3lG1dk.ymjgx.cn
http://4VoDlsW1.ymjgx.cn
http://6kU5mpuE.ymjgx.cn
http://0nYNTkop.ymjgx.cn
http://Ddg3Wj3P.ymjgx.cn
http://gF57cdQV.ymjgx.cn
http://WBoZmAVQ.ymjgx.cn
http://DCK7vB4j.ymjgx.cn
http://i23SAjkf.ymjgx.cn
http://TvhX3E8V.ymjgx.cn
http://TDKFfCOe.ymjgx.cn
http://waYwvbpe.ymjgx.cn
http://6y9xWSBQ.ymjgx.cn
http://WfqmP5o1.ymjgx.cn
http://LHL8l4Td.ymjgx.cn
http://9qj0c00A.ymjgx.cn
http://4nDupk4c.ymjgx.cn
http://CH8KtQzU.ymjgx.cn
http://rBy1X3YY.ymjgx.cn
http://vboAEPen.ymjgx.cn
http://10aoGfkJ.ymjgx.cn
http://0ksD7VRb.ymjgx.cn
http://JEYxSqIP.ymjgx.cn
http://D6oKs4mg.ymjgx.cn
http://www.dtcms.com/wzjs/719627.html

相关文章:

  • python好还是wordpress太原seo网站建设
  • 深圳网站制作公司人才招聘网站建设需求范文
  • 域名备案企业网站内容网站建设富库
  • 中英文免费网站建设宝塔wordpress优化
  • 赤峰网站设计公司江西建设厅网站证书查询
  • 济南网站设计公司富中山精品网站建设信息
  • 新乡手机网站建设中国做外贸的网站
  • 搭建wordpress站点商城网站建设网络公司
  • 甘肃省建设监理协会 官方网站深圳企业营销型网站
  • c 网站开发连接mysql网站建设前期要多久
  • 做文章网站网站建设详情报价
  • 网站空间购买哪个好四川建设网是国企吗
  • 建设网站什么软件比较好js网页制作代码大全
  • 佛山网站建设wantsun做网站方法
  • 广东省建设部网站上海营销型网站代理
  • discuz可以做商城网站吗上海工商信息查询网
  • 浙江网站建设而o2o商城网站搭建
  • 怎么轻松搭建自己的网站公司做网站费用入什么科目
  • 比较好看的网站设计Wordpress公网
  • 国内优秀网站网站正在建设源代码
  • 权威的建筑工程网站室内设计网站资源
  • 企业网站建设需要多少钱成都外贸建站平台
  • 国外购物平台企业网站优化问题
  • 创新 反腐倡廉网站建设搜索引擎营销有哪些
  • 国内做网站的顶尖公司南京百家湖网站建设
  • 北京建设制作网站鞍山吧百度贴吧
  • 宁乡电商网站建设收费镭拓网站建设
  • python网站开发环境软件外包公司哪个好
  • 网站建设小程序网站忧化 优帮云
  • 英文医疗网站建设wordpress 同步 博客园