从装饰器访问 self

2023-12-08

在unittest的setUp()方法中我设置了一些self变量,稍后在实际测试中引用。我还创建了一个装饰器来进行一些日志记录。有什么方法可以访问这些self来自装饰器的变量?

为了简单起见,我发布了这段代码:

def decorator(func):
    def _decorator(*args, **kwargs):
        # access a from TestSample
        func(*args, **kwargs)
    return _decorator

class TestSample(unittest.TestCase):    
    def setUp(self):
        self.a = 10

    def tearDown(self):
        # tear down code

    @decorator
    def test_a(self):
        # testing code goes here

最好的访问方式是什么a(在 setUp() 中设置)来自装饰器?


既然你正在装饰一个方法,并且self是一个方法参数,你的装饰器可以访问self在运行时。显然不是在解析时,因为还没有对象,只是一个类。

所以你将你的装饰器更改为:

def decorator(func):
    def _decorator(self, *args, **kwargs):
        # access a from TestSample
        print 'self is %s' % self
        return func(self, *args, **kwargs)
    return _decorator
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从装饰器访问 self 的相关文章

  • Django:如何测试“HttpResponsePermanentRedirect”

    我正在为我的 django 应用程序编写一些测试 在我看来 它使用 HttpResponseRedirect 重定向到其他一些网址 那么我该如何测试呢 姜戈TestCase类有一个方法assertRedirects https docs d
  • 从正在运行的 python 脚本检测优化标志是否为 -O 或 -OO

    有时我想生成一个子进程 其优化标志与启动父进程时使用的优 化标志相同 我可以使用类似的东西 optimize not debug 但这样我就可以匹配两者 O and OO flags 是否有一些 python 内部状态包含该信息 经过一番深
  • 使用 Spring 时实例化对象,用于测试与生产

    使用 Spring 时 应该使用 Spring 配置 xml 来实例化生产对象 并在测试时直接实例化对象 这样的理解是否正确 Eg MyMain java package org world hello import org springf
  • 如何确定非阻塞套接字是否真正连接?

    这个问题不仅限于Python 这是一个一般的套接字问题 我有一个非阻塞套接字 想要连接到一台可访问的机器 在另一端 该端口不存在 为什么 select 仍然成功 我预计会超时 sock send 因管道损坏而失败 select 之后如何确定
  • python - 是否可以扩展 xml-rpc 可以序列化的事物集?

    我看到几个问题询问如何发送numpy ndarray通过 xml rpc 调用 这不能开箱即用 因为正如 xml rpc 中所述docs https docs python org 2 library xmlrpclib html 有一组固
  • 在python中将文本文件解析为列表

    我对 Python 完全陌生 我正在尝试读取包含单词和数字组合的 txt 文件 我可以很好地读取 txt 文件 但我正在努力将字符串转换为我可以使用的格式 import matplotlib pyplot as plt import num
  • 如何使用Python将WebP图像转换为Gif?

    我已经尝试过这个 from PIL import Image im Image open this webp im save that gif gif save all True 这给了我这个错误 类型错误 不支持的操作数类型 tuple
  • 所有junit测试后的清理

    在我的项目中 我必须在所有测试之前进行一些存储库设置 这是使用一些棘手的静态规则来完成的 然而 在所有测试之后我不知道如何进行清理 我不想保留一些神奇的静态数字来引用所有测试方法的数量 我应该一直维护它 最受赞赏的方法是添加一些侦听器 该侦
  • Python - 用逗号分割,跳过括号内的内容

    我需要用逗号分隔字符串 但我对这种情况有一个问题 TEXT EXAMPLE THIS IS A EXAMPLE BUT NOT WORKS FOR ME SECOND THIRD 我想拆分并得到 var 0 TEXT EXAMPLE THI
  • Python igraph:从图中删除顶点

    我正在使用安然电子邮件数据集 并尝试删除没有 enron com 的电子邮件地址 即我只想拥有安然电子邮件 当我尝试删除那些没有 enron com 的地址时 一些电子邮件由于某些原因被跳过 下面显示了一个小图 其中顶点是电子邮件地址 这是
  • Python Kivy - 在本机网络浏览器中打开 url 的应用程序

    我尝试制作一个简单的应用程序 在单击 Screen One 上的按钮后 在 Kivy 中打开一个网页 我使用了这个主题 Python 在应用程序中直接显示网络浏览器 iframe https stackoverflow com questi
  • 无法打开 Python。错误 0xc000007b

    我最近一直在学习 Python 3 我在我的上网本 32 位 Windows 7 上创建简单的小程序没有任何问题 当我将它安装在我的上网本上时 我没有遇到任何问题 但现在我已经开始使用它了 我想将它安装在我的台式机上 并且我有一个 我的桌面
  • 创建一个类似于 Tkinter 的表

    我希望创建类似于 Tkinter 中的表格的东西 但它不一定是这样的 例如 我想创建标题 Name1 Name2 Value 并在每个标题下面有几个空白行 然后 我希望稍后用我计算的值或名称的字符串值填充这些行 因此是标签 对于 Name2
  • 在径向(树)网络x图中查找末端节点(叶节点)

    给定下图 是否有一种方便的方法来仅获取末端节点 我所说的端节点是指那些具有一个连接边的到节点 我认为这些有时被称为叶节点 G nx DiGraph fromnodes 0 1 1 1 1 1 2 3 4 5 5 5 7 8 9 10 ton
  • 如何通过双击在浏览器中打开 ipynb 文件

    以前 我安装了 Canopy 当时 我只需双击 ipynb 文件并在浏览器中打开它们即可 但是 后来我需要Anaconda 一旦我安装了它 这个功能就没有了 现在我只希望能够简单地双击 ipynb 文件 然后该文件就会在 Firefox 中
  • Django 在选择列表更改时创建毫无意义的迁移

    我正在尝试使用可调用创建一个带有选择字段的模型 以便 Django 在选择列表更改时不会创建迁移 如中所述this https stackoverflow com questions 31788450 stop django from cr
  • select() 可以在 Windows 下使用 Python 中的文件吗?

    我正在尝试在 Windows 下运行以下 python 服务器 An echo server that uses select to handle multiple clients at a time Entering any line o
  • 将一个列表的元素除以另一个列表的元素

    我有两个清单 比如说 a 10 20 30 40 50 60 b 30 70 110 正如你所看到的 列表 b 由一个列表的元素总和组成 其中 window 2 b 0 a 0 a 1 10 20 30 etc 如何获得另一个列表 该列表由
  • 检查字符串是否只有字母和空格 - Python

    试图让 python 返回一个字符串仅包含字母和空格 string input Enter a string if all x isalpha and x isspace for x in string print Only alphabe
  • 异步和协程与任务队列

    我一直在阅读有关 python 3 中的 asyncio 模块的内容 以及更广泛地了解 python 中的协程的内容 但我不明白是什么让 asyncio 成为如此出色的工具 我的感觉是 你可以用协程做的所有事情 通过使用基于多处理模块 例如

随机推荐

  • 经典 ASP、MySQL 或 ODBC UTF8 编码

    我有一个由 GoDaddy 托管的网站 包括后端的 MySQL 数据库 该网站是斯洛文尼亚网站 因此使用了特殊字符 该网站是用经典 ASP 构建的 我在 Notepad 中创建了所有页面 其中使用了 utf 8 编码 在每个页面的顶部 我还
  • 使用curl POST multipart/form-data 的正确方法是什么?

    我使用此语法来发布文件以及一些参数 curl v include form key1 value1 form upload localfilename URL 该文件大小约为 500K 首先 我看到发送端的内容长度为 254 之后服务器响应
  • 如何使用python下载谷歌云平台上文件夹内的文件?

    from google cloud import storage client storage Client bucket client get bucket bucket name blob bucket get blob path to
  • 可变递归预处理器宏 - 可能吗?

    我遇到了一些理论问题 在我维护的一段代码中有一组宏 例如 define MAX OF 2 a b a gt b a b define MAX OF 3 a b c MAX OF 2 MAX OF 2 a b c define MAX OF
  • 将 Yii2 应用程序部署到共享主机步骤

    我觉得奇怪的是 关于将 Yii2 应用程序部署到共享主机服务器的注意事项的详细信息如此之少 如果有的话 有人对此有一些步骤 技巧 注意事项吗 您是否遵循一个流程可以将问题 错误降至最低 数据库如何迁移 带有数据 我假设我可以导出 导入数据库
  • C# 比较两个泛型值[重复]

    这个问题在这里已经有答案了 可能的重复 运算符 不能应用于 C 中的泛型类型吗 我编写了这样的代码 public bool IsDataChanged T value1 GetValue2 T value2 GetValue1 return
  • 模块 appregistry 不是已注册的可调用模块(调用 runApplication)

    我根本找不到让反应导航工作的方法 我从互联网上复制了工作示例 但它们似乎也不起作用 有人可以告诉我我做错了什么吗 我在用着 节点 8 9 4 反应 16 3 0 alpha 1 反应本机 0 54 0 反应导航 1 4 0 index js
  • 谷歌地图折线的中间(质心?)

    我有一个折线列表 就像谷歌地图一样does当我单击折线时 我希望在我单击的位置显示一个信息窗口 并且它与此功能配合得很好 function mapsInfoWindow polyline content google maps event
  • 在最新的 Python 3 版本中实现“openssl_private_encrypt”

    我正在尝试用 Python 维护 FastSpring 电子商务平台 Secure Payload api 实现 他们的文档提供了使用 Java 和 PHP 中的私钥加密 或技术上签名 有效负载的示例 https developer fas
  • 如何在 Ruby 中将八进制数转换为十进制数?

    我试图找到一种使用八进制编号引用数组索引的干净方法 如果我正在寻找八进制 13 的数组索引 它应该返回以下值 a 11 这是我想出的方法来完成它 但它看起来不是很优雅或有效 a 50 51 52 53 54 55 56 57 58 59 6
  • 本地 WCF 服务的 ClientAccessPolicy.xml 放置在哪里?

    我正在尝试创建一个基本的 WCF 服务和 Silverlight 客户端 我已按照以下教程进行操作 http channel9 msdn com shows Endpoint Endpoint Screencasts Creating Yo
  • 如何将参数传递给 karate.call [重复]

    这个问题在这里已经有答案了 我正在将参数传递给karate call如下 getting object by name def id response content 0 id And eval if size response conte
  • ./spark-shell无法正确启动(spark1.6.1-bin.hadoop2.6版本)

    我安装了这个spark版本 spark 1 6 1 bin hadoop2 6 tgz 现在当我开始火花时 spark shell命令我遇到了这个问题 它显示了很多错误行 所以我只放了一些看起来很重要的错误行 Cleanup action
  • 如何在 LIKE 子句中转义方括号?

    我正在尝试用存储过程 using like 该列是 varchar 15 我尝试过滤的项目名称中带有方括号 例如 WC R S123456 如果我做一个LIKE WC R S123456 它不会返回任何东西 我找到了一些有关使用的信息ESC
  • 所有 Unicode 左括号/右括号的列表

    每个 Unicode 括号字符的列表是什么 包括 例如 lt gt 搜索 Unicode 字符的好方法是什么 有一个纯文本数据库有关 Unicode 联盟提供的每个 Unicode 字符的信息 格式描述于统一码附件 44 主要信息包含在Un
  • 是否有任何公式可以根据进程的 cpu 使用情况查找电池使用情况?

    在我的应用程序中 我想计算进程处理 CPU 周期所消耗的电池 是否有任何公式可以计算执行 CPU 周期的进程所使用的电池 None
  • 如何有条件地将属性添加到 javascript 对象文字

    我正在尝试执行以下操作来满足代码生成器 具体来说是 Sencha Cmd 的要求 这就是我需要做的本质 关键因素是函数体必须以返回对象文字结束 由于构建器的限制 我无法返回变量 那么 如果参数 includeB 为 true 如何在下面的伪
  • 通过引用传递数组

    通过引用传递静态分配的数组是如何工作的 void foo int myArray 100 int main int a 100 foo a Does myArray 100 有什么意义或者只是通过引用传递任何数组的语法 我不明白这里的单独括
  • 如何读取excel文件并将数据插入到oracle表中

    我正在使用 oracle 11g 如何使用 plsql 和 oracle forms 读取 excel 文件并将数据插入到 oracle 表中 我对他的主题很陌生 enter code here i tried https sites go
  • 从装饰器访问 self

    在unittest的setUp 方法中我设置了一些self变量 稍后在实际测试中引用 我还创建了一个装饰器来进行一些日志记录 有什么方法可以访问这些self来自装饰器的变量 为了简单起见 我发布了这段代码 def decorator fun