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

网站制作公司北京华网南昌网站建设策划

网站制作公司北京华网,南昌网站建设策划,seo 网站换程序,前端开发工程师就业前景知识点回顾 类的装饰器装饰器思想的进一步理解:外部修改、动态类方法的定义:内部定义和外部定义 相比函数装饰器只能增强单个函数的行为。类装饰器可以 动态为类添加新方法 为圆类添加体积方法 import math def add_volume(cls):def volume(self):retur…

知识点回顾

  1. 类的装饰器
  2. 装饰器思想的进一步理解:外部修改、动态
  3. 类方法的定义:内部定义和外部定义

相比函数装饰器只能增强单个函数的行为。类装饰器可以 动态为类添加新方法

为圆类添加体积方法

import math  def add_volume(cls):def volume(self):return 4/3 * self.radius**3 * math.picls.volume = volume           # 动态添加类return cls@add_volume
class Circle:  # 定义一个类def __init__(self, radius=1): # 传入半径self.radius = radius      # self.radius 是实例属性(可修改属性名,需同步改方法中的用)def calculate_area(self):              # 定义周长方法return math.pi * self.radius ** 2  # math.pi 是固定常量,self.radius 是实例属性def calculate_circumference(self):     # 定义面积方法return 2 * math.pi * self.radius
cir1 = Circle(1)
print(cir1.volume())

4.1887902047863905

为类的方法添加日志

def log_all_methods(cls):for name, method in cls.__dict__.items():if callable(method):# 立即绑定当前的 name 值def logged_method(method, name=name):  # 关键:name=name 立即捕获当前值def wrapper(*args, **kwargs):print(f"[LOG] 调用方法: {name}")  # 使用闭包外层的 namereturn method(*args, **kwargs)return wrappersetattr(cls, name, logged_method(method))return clsCircle = log_all_methods(Circle)cir2 = Circle(2)
print(cir2.calculate_circumference())

[LOG] 调用方法: __init__

[LOG] 调用方法: calculate_circumference

12.566370614359172

通过装饰器为类添加父类

class LogMixin:  # 定义一个混入类(提供日志功能)def log(self, message):print(f"[LOG] {message}")def add_mixin(cls):# 动态添加 LogMixin 为父类return type(cls.__name__, (cls, LogMixin), {})@add_mixin  # 添加 LogMixin 为父类
class MyClass:passobj = MyClass()
obj.log("测试日志")  # 输出 "[LOG] 测试日志"

http://www.dtcms.com/wzjs/562483.html

相关文章:

  • 厦门地税网站建设wordpress博客如何安装
  • 网站图标代码网站建设运行问题及建议
  • 成都高档网站建设东莞建设网企业沟通平台
  • 网站模版建设教程室内设计平面图讲解
  • 网站 备案嘉兴学网站建设
  • 汉中免费做网站wordpress gallery类型
  • asp 企业网站管理系统网站标题更改
  • 高端网站制作价格网站更改备案信息在哪
  • 顺德营销型网站外贸建站推广
  • 山东优质校建设专题网站什么样式表一般用于大型网站
  • 网站的建设费用分为asp.net做登录网站资源
  • 网站搭建费用电脑怎么做最新系统下载网站
  • 灵犀科技 高端网站建设首页西安现在可以自由出入吗
  • 手机网站建设企业手机网站设计公司只找亿企邦
  • 手机app wap网站模板下载怎么查询网站开发时间
  • 织梦做的网站如何修改万维网站注册
  • 南京网站关键词推广免费申请网站域名
  • 温岭自适应网站建设企业外包
  • 关于建网站新闻怎么修改wordpress的php文件
  • 专业开发网站建设哪家好营销网站制作设计
  • 网站开发前端如何开发建站公司没前端
  • t恤定制平台德州网站优化
  • 网站建设价格制定的方法亿网
  • 网站关键词排名服务北京尚层装饰总部电话
  • wordpress 网店模板seo一个空间建多个网站
  • 免费开发个人网站wordpress自动保存编辑器图片
  • 怎么样签约设计网站网线水晶头制作过程
  • linux网站开发工具做网站小语种翻译多少钱
  • 网站开发公司更换网站建设公司广告语宣传语
  • 西安网站开发公司定制seo排名优化方式