如何修饰类中的方法?

2024-01-31

我试图在类中装饰一个方法,但 python 抛出错误。我的班级是这样的:

from pageutils import formatHeader

class myPage(object):
   def __init__(self):
      self.PageName = ''

   def createPage(self):
      pageHeader = self.createHeader()

   @formatHeader   #<----- decorator
   def createHeader(self):
       return "Page Header ",self.PageName

if __name__=="__main__":
   page = myPage()
   page.PageName = 'My Page'
   page.createPage()

pageutils.py:

def formatHeader(fn):
   def wrapped():
       return '<div class="page_header">'+fn()+'</div>'
   return wrapped

Python 抛出以下错误

self.createHeader()
TypeError: wrapped() takes no arguments (1 given)

我哪里偷懒了?


您省略了未修饰函数中存在的 self 参数(在您的情况下是 createHeader )。

def formatHeader(fn):
    from functools import wraps
    @wraps(fn)
    def wrapper(self):
        return '<div class="page_header">'+fn(self)+'</div>'
    return wrapper

如果您不确定要修饰的函数的签名,可以将其变得相当通用,如下所示:

def formatHeader(fn):
    from functools import wraps
    @wraps(fn)
    def wrapper(*args, **kw):
        return '<div class="page_header">'+fn(*args, **kw)+'</div>'
    return wrapper
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修饰类中的方法? 的相关文章

  • 如何查看Databricks中的所有数据库和表

    我想列出 Azure Databricks 中每个数据库中的所有表 所以我希望输出看起来像这样 Database Table name Database1 Table 1 Database1 Table 2 Database1 Table
  • 在 python 程序中合并第三方库的最佳实践是什么?

    下午好 我正在为我的工作编写一个中小型Python程序 该任务需要我使用 Excel 库xlwt and xlrd 以及一个用于查询 Oracle 数据库的库 称为CX Oracle 我正在通过版本控制系统 即CVS 开发该项目 我想知道围
  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • OpenCV Python cv2.mixChannels()

    我试图将其从 C 转换为 Python 但它给出了不同的色调结果 In C Transform it to HSV cvtColor src hsv CV BGR2HSV Use only the Hue value hue create
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • 通过最小元素比较对 5 个元素进行排序

    我必须在 python 中使用元素之间的最小比较次数来建模对 5 个元素的列表进行排序的执行计划 除此之外 复杂性是无关紧要的 结果是一个对的列表 表示在另一时间对列表进行排序所需的比较 我知道有一种算法可以通过 7 次比较 总是在元素之间
  • Python - StatsModels、OLS 置信区间

    在 Statsmodels 中 我可以使用以下方法拟合我的模型 import statsmodels api as sm X np array 22000 13400 47600 7400 12000 32000 28000 31000 6
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • 如何在ipywidget按钮中显示全文?

    我正在创建一个ipywidget带有一些文本的按钮 但按钮中未显示全文 我使用的代码如下 import ipywidgets as widgets from IPython display import display button wid
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 解释 Python 中的数字范围

    在 Pylons Web 应用程序中 我需要获取一个字符串 例如 关于如何做到这一点有什么建议吗 我是 Python 新手 我还没有找到任何可以帮助解决此类问题的东西 该列表将是 1 2 3 45 46 48 49 50 51 77 使用
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc
  • 在 Qt 中自动调整标签文本大小 - 奇怪的行为

    在 Qt 中 我有一个复合小部件 它由排列在 QBoxLayouts 内的多个 QLabels 组成 当小部件调整大小时 我希望标签文本缩放以填充标签区域 并且我已经在 resizeEvent 中实现了文本大小的调整 这可行 但似乎发生了某
  • 使用 Python 的 matplotlib 选择在屏幕上显示哪些图形以及将哪些图形保存到文件中

    我想用Python创建不同的图形matplotlib pyplot 然后 我想将其中一些保存到文件中 而另一些则应使用show 命令 然而 show 显示all创建的数字 我可以通过调用来避免这种情况close 创建我不想在屏幕上显示的绘图
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip
  • Statsmodels.formula.api OLS不显示截距的统计值

    我正在运行以下源代码 import statsmodels formula api as sm Add one column of ones for the intercept term X np append arr np ones 50

随机推荐

  • `git log --all` 怎么会错过提交点?

    提交后 我会提醒我处于分离的 HEAD 状态 gt git commit m Implemented Runrealfast algorithm detached HEAD af46ac9 Implemented Runrealfast a
  • AWS Lambda 热启动和冷启动

    您好 我是 AWS Lambda 新手 我想知道热 Lambda 函数 热启动 和冷 Lambda 函数 冷启动 是什么意思 谁能详细解释一下热 Lambda 和冷 Lambda 之间有什么区别 上传代码后或一段时间不活动后 您的 Lamb
  • 自解压可执行 C++

    我试图了解自解压 PE 文件的工作原理 有人可以解释为什么我的代码不起作用 或者修复 main 部分 include
  • 来自 std::string 的 std::istringstream 无需复制

    我一直在用这个 ifstream in file txt string line getline in line istringstream iss line 进行一些简单的解析 我想避免不必要的复制以提高性能 所以我尝试 ifstream
  • 如何用selenium获取响应状态码?

    作为一个新手 我想知道是否有一种方法可以获取http响应状态代码来判断一些期望 例如远程服务器关闭 url损坏 url重定向等 在硒中这是不可能的 欲了解更多信息 请点击here https github com seleniumhq se
  • 检测PHP会话是否存在

    Facebook 现在向用户提供订阅服务 以便您可以获得有关更改的实时更新 如果我的应用程序收到更新 我计划将其存储在数据库中 我还想检测他们的会话是否存在 如果是的话我也可以更新那里的数据 我的会话 ID 是 MD5 fb id 秘密 因
  • b-spinner 的 VUE-js 可访问性——使用 Aria 进行数据加载的音频公告,每 3 秒重复一次

    当微调器直观地显示数据正在加载时 我试图添加 数据加载 音频公告的可访问性 显然 我正在寻找一种声音公告 最好是一种无需单击任何内容即可自动播放的公告 我的目标是自动听到公告并在加载时每 3 秒重复一次 下面的代码会自动生成一个工作公告 然
  • 项目文件上的 intellij 图标

    intellij 在我的 java 文件上放置了看起来像没有入口标志的东西 带有一条线的红色圆圈 四处搜索但找不到原因 请问有人知道吗 这是一个 Maven 项目 如果这有影响的话 这意味着这些文件不是项目设置的一部分 您是如何创建该项目的
  • 将窗口固定到桌面/将窗口粘贴到桌面/“始终位于底部”窗口

    我正在 C Win32 中开发一个基本的桌面应用程序 我现在的目标是创建一个基本的 便签 应用程序固定 粘在桌面上 即始终位于桌面前面 但始终位于任何其他应用程序后面 这确实是一个个人项目 只是为了对抗我糟糕的记忆力 让我的任务 笔记始终在
  • 如何优化这个索引算法

    我的问题 无论如何 我可以加快计算速度吗 是否有更好的算法或实现可以用来计算相同的值 描述算法 我有一个复杂的索引问题 我正在努力以有效的方式解决它 目标是计算矩阵w prime使用大小相同的矩阵中的值的组合w dY and dX 的价值w
  • 在 JavaScript 中以 12 小时格式显示时间

    我想通过更改以下代码以 12 小时格式显示时间 我尝试了各种技术但没有运气 希望能从你们那里找到解决方案
  • 如何在android中解析HTML?

    我正在为 android 制作一个应用程序 该应用程序的功能之一是返回图书馆目录在线搜索的结果 应用程序需要以与应用程序的其余部分保持一致的方式显示搜索结果 这是通过自定义 HTML 表单执行的 即 需要解析搜索结果并显示有用的元素 我只是
  • CSS3动画在Android 2.2上闪烁(webkit-transform:translate(..) 同时缩放(..))

    我在 Android 上做了一些关于 CSS3 动画 使用 webkit transition 进行转换 的研究 CSS3 动画在 Webkit 中仍然是一个实验性功能 如果您尝试同时进行平移和缩放 您会发现 CSS 动画中存在一些小故障和
  • 使用最新的 csproj 格式时,Web 部署包未拾取parameters.xml

    我有一个项目正在更新以使用新的 csproj 格式 我们曾经使用以下 msbuild 参数 msbuild Logging sln p WebPublishMethod Package p PackageAsSingleFile true
  • 使用上下文的“circular_reference_handler”键代替 symfony 4.2

    我必须序列化一个对象 并且遇到了如此常见的 循环引用错误 我使用了旧的 Symfony 方法 normalizer new ObjectNormalizer Add Circular reference handler normalizer
  • 选择名称为数组字段的输入字段

    我想根据条件选择文本字段 例如 if only text field name sname than only put value in it 为此我使用了
  • Python列表直接修改

    lines absb asdjhasd sadjhj sdhjsdh asjhjhad asdasd ashjhfdj asdasd for z in lines for l in z l l split print lines 我怎样才能
  • AngularFire 更新 -> 哪里

    我在这里找不到东西 我的问题是如何更新 AngularFire 中 WHERE 子句中返回的文档 constructor private db AngularFirestore var path this db collection use
  • Windows 并发 tcp/ip 连接的最大数量是多少?

    在 NET中我已经成功尝试了以下配置
  • 如何修饰类中的方法?

    我试图在类中装饰一个方法 但 python 抛出错误 我的班级是这样的 from pageutils import formatHeader class myPage object def init self self PageName d