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

手机付费咨询网站建设互动营销案例100

手机付费咨询网站建设,互动营销案例100,docker运行wordpress,网站被人做跳转改如何举报装饰器不仅可以用于函数,还能作用于类。将装饰器应用于类时,其核心原理与作用于函数类似,都是通过接收一个类作为输入,然后返回一个新的类或者修改后的原类,以此来为类添加额外的功能 简单的类装饰器 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://www.cadmedia.cn/news/9277.html

相关文章:

  • 网站制作公司排名前十西安seo关键词查询
  • 2o17甘孜建设网站网上在哪里打广告最有效
  • 网站收录查询情况seo做什么网站赚钱
  • 网站制作公司如何运作网站建设黄页在线免费
  • 福州企业建站软件百度指数怎么看地域数据
  • 智慧团建登陆网站宁德市委书记
  • 做任务什么网站郑州seo网站管理
  • 7a125v能插国内插座吗北京seo结算
  • 苏州网站seo公司代写平台在哪找
  • 合肥网站网站建设百度seo关键词优化排名
  • 无锡建设机械网站制作网站平台都有哪些
  • 做网站编程语言西安网站制作
  • 软文营销的写作技巧有哪些郑州网站优化外包
  • 网络培训ppt标题优化方法
  • 鞍山ui界面惠州seo计费管理
  • 门户网站如何建设企业内训课程
  • 网站建设考题潍坊网站排名提升
  • 彩票交易网站开发三台网站seo
  • 网站哪个公司好关键词采集网站
  • 做哪种网站比较简单微信广告投放推广平台多少费用
  • 泉州最专业手机网站建设定制网店推广平台有哪些
  • 做网站需要什么软件如何找友情链接
  • 中纪委网站作风建设永远在路上网站自然排名怎么优化
  • 怎么做网站埋点如何做seo
  • 长沙建站费用百度秒收录蜘蛛池
  • 哈尔滨网页设计培训橘子seo
  • 对网站建设 意见和建议专门培训seo的网站
  • 网站点击量 哪里查询营销型网站优化
  • 全国网页设计公司网站优化包括哪些
  • 影视自助建站网络推广怎么找客户