如何将装饰器中的变量传递给装饰函数中的函数参数?

2024-01-11

我正在学习Python。希望有人指出我正确的方法。
这就是我想要在下面做的事情:

def decorate(function):
    def wrap_function(*args, **kwargs):
        str = 'Hello!'  # This is what I want
        return function(*args, **kwargs)
    return wrap_function

@decorate
def print_message():
    # I'd like to pass 'str' as mentioned above
    # to any functions' argument like below:
    print(str)  # 'str' is same as above

任何想法?提前致谢。


您不能将其作为自己的名称传递,但可以将其添加到关键字中。

def decorate(function):
    def wrap_function(*args, **kwargs):
        kwargs['str'] = 'Hello!'
        return function(*args, **kwargs)
    return wrap_function

@decorate
def print_message(*args, **kwargs):
    print(kwargs['str'])

或者你可以命名它自己的参数:

def decorate(function):
    def wrap_function(*args, **kwargs):
        str = 'Hello!'
        return function(str, *args, **kwargs)
    return wrap_function

@decorate
def print_message(str, *args, **kwargs):
    print(str)

上课方法:

def decorate(function):
    def wrap_function(*args, **kwargs):
        str = 'Hello!'
        args.insert(1, str)
        return function(*args, **kwargs)
    return wrap_function

class Printer:
    @decorate
    def print_message(self, str, *args, **kwargs):
        print(str)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将装饰器中的变量传递给装饰函数中的函数参数? 的相关文章

  • 在 python + openCV 中使用网络摄像头的问题

    我正在使用以下代码使用 openCV python 访问我的网络摄像头 import cv cv NamedWindow webcam feed cv CV WINDOW AUTOSIZE cam cv CaptureFromCAM 1 然
  • 如何将经度和纬度转换为国家或城市?

    我需要将经度和纬度坐标转换为国家或城市 python中有这样的例子吗 提前致谢 我使用谷歌的API from urllib2 import urlopen import json def getplace lat lon url http
  • 使用 Flask SQLAlchemy 进行表(模型)继承

    我遵循了这个建议question https stackoverflow com questions 1337095 sqlalchemy inheritance但我仍然收到此错误 sqlalchemy exc NoForeignKeysE
  • 按 ListProperty (NDB) 对查询进行排序

    如何按 ListProperty 对查询进行排序 该模型 class Chapter ndb Model title ndb StringProperty required True version ndb IntegerProperty
  • 使用 GeoDjango 在坐标系之间进行转换

    我正在尝试将坐标信息添加到我的数据库中 添加django contrib gis支持我的应用程序 我正在写一个south数据迁移 从数据库中获取地址 并向 Google 询问坐标 到目前为止 我认为我最好的选择是使用geopy为了这 接下来
  • 在 Python 中比较日期 - 如何处理时区修饰符

    我正在做Python日期比较 假设我有一个这样的约会 Fri Aug 17 12 34 00 2012 0000 我按以下方式解析它 dt datetime strptime Fri Aug 17 12 34 00 2012 0000 a
  • 代理阻止网络套接字?如何绕行

    我有一个用 Python 编写的正在运行的 websocket 服务器 来自https github com opiate SimpleWebSocketServer https github com opiate SimpleWebSoc
  • 在 C# 中实例化 python 类

    我已经用 python 编写了一个类 我想通过 IronPython 将其包装到 net 程序集中 并在 C 应用程序中实例化 我已将该类迁移到 IronPython 创建了一个库程序集并引用了它 现在 我如何真正获得该类的实例 该类看起来
  • 打印一个 Jupyter 单元中定义的所有变量

    有没有一种更简单的方法来以漂亮的方式显示单个单元格中定义的所有变量的名称和值 我现在做的方式是这样的 但是当有30个或更多变量时我浪费了很多时间 您可以使用whos http ipython readthedocs io en stable
  • keras 预测内存交换无限期增加

    我使用keras实现了一个分类程序 我有一大组图像 我想使用 for 循环来预测每个图像 然而 每次计算新图像时 交换内存都会增加 我尝试删除预测函数内部的所有变量 并且我确信该函数内部存在问题 但内存仍然增加 for img in ima
  • Python将csv数据导出到文件中

    我有以下运行良好的代码 但我无法修剪数据并将其存储在数据文件中 import nltk tweets love this car this view amazing not looking forward the concert def g
  • 指定 Parquet 属性 pyspark

    如何在 PySpark 中指定 Parquet 块大小和页面大小 我到处搜索 但找不到任何有关函数调用或导入库的文档 根据火花用户档案 https mail archives apache org mod mbox spark user 2
  • 从文档字符串生成 sphinx 文档不起作用

    我有一个具有以下结构的项目 我想保留 my project build here is where sphinx should dump into requirements txt make bat Makefile more config
  • 将 ASCII 字符转换为“”unicode 表示法的脚本

    我正在对 Linux 区域设置文件进行一些更改 usr share i18n locales like pt BR 并且需要格式化字符串 例如 d m Y H M 必须以 Unicode 指定 其中每个 在本例中为 ASCII 字符表示为
  • 如何从c++调用python

    我是Python新手 我尝试像这样从 C 调用 python 脚本 在 Raspberry Pi 中 std string pythonCommand python Callee py a b int res system pythonCo
  • if/else 在 while 循环内正确缩进[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我开始学习 Python 编程大约几周了 我遇到了一些麻烦 下面的代码是一个小程序 用于检查列表中是否有偶数 如果找到第一个偶数
  • tweepy 流到 sqlite 数据库 - 语法错误[重复]

    这个问题在这里已经有答案了 可能的重复 tweepy 流到 sqlite 数据库 语法无效 https stackoverflow com questions 9434205 tweepy stream to sqlite database
  • python IDLE shell 似乎无法正确处理一些转义

    例如 b 退格键打印为四元 在下面的示例中显示为 但是 n 换行是可以的 gt gt gt print abc bd abc d gt gt gt print abc nd abc d 我在 Vista pro python 2 7 下运行
  • Python 中的 C 指针算术

    我正在尝试将一个简单的 C 程序转换为 Python 但由于我对 C 和 Python 都一无所知 这对我来说很困难 我被 C 指针困住了 有一个函数采用 unsigned long int 指针并将其值添加到 while 循环中的某些变量
  • 如何获取所有Python标准库模块的列表?

    我想要类似的东西sys builtin module names标准库除外 其他不起作用的事情 sys modules 只显示已经加载的模块 sys prefix 包含非标准库模块并且似乎无法在 virtualenv 内工作的路径 我想要这

随机推荐

  • Ghostscript pdfwrite 指定 jpeg 质量

    我正在尝试连接多个 pdf 文件 这些文件基本上是包含 jpg 图像的相册页面 对于我的输出 pdf 文件 我希望将图像分辨率调整为 300 dpi 并希望保持最佳质量 我使用的命令是 gswin64c exe dNOPAUSE dBATC
  • 文件所有者和 nsapplication、appdelegate

    在苹果文档中 它指出 nsapplication 是主笔尖的文件所有者 这只是由模板设置还是必须加载第一个笔尖 以这种方式加载 另外 我通读了有关文件所有者的其余帖子 但有些事情仍然让我感到困惑 如果 Iboutlet 是 nibs 文件所
  • 使用 Splinter 操作浏览器(窗口)大小

    我正在尝试使用 Firefox 驱动程序Splinter https github com cobrateam splinter测试一些响应式设计 当然 这需要我调整浏览器窗口的大小 我根本找不到有关浏览器调整大小的任何信息文档 https
  • 如何廉价地将 C 样式数组分配给 std::vector?

    目前我执行以下操作 float c array new float 1024 void Foo foo float c array size t c array size std vector
  • 使用 rtree 和普通索引的 SQLite 查询速度慢

    我在 SQLite 表中有地理空间数据 带有坐标的名称 并为该位置创建了一个 rtree 并在名称列上创建了一个普通索引 Rtree 根据此文档使用 http www sqlite org rtree html http www sqlit
  • 如何让 git 接受自签名证书?

    使用 Git 有没有办法告诉它接受自签名证书 我正在使用 https 服务器来托管 git 服务器 但目前证书是自签名的 当我第一次尝试在那里创建存储库时 git push origin master f 我收到错误 error Canno
  • R:在日期中添加“th”、“rd”和“nd”

    我有一些日期 我可以从中提取该月的日期 trimws format seq Date from as Date 2016 01 01 to as Date 2016 10 01 by day e 我想根据需要使用后缀 th rd 或 nd
  • 复制按钮保留换行符

    我有一些非常基本的 Javascript 可以在按下按钮时复制文本 我的问题是它不保留换行符 我真的希望能够将一些东西添加到上面的脚本中 以避免在网站上进行巨大的更改 我在其他帖子上看到过一些内容 例如 post innerHTML pos
  • 更新 redux 存储中的嵌套数据

    使用 redux 更新存储中的嵌套数据数组的最佳 正确方法是什么 我的商店是这样的 items 1 id 1 key value links id 10001 data some more stuff 我有一对异步操作来更新完整的items
  • 使用图表系列中的参数值在 SSRS 2008 中进行钻取报告?

    我正在为我的公司创建一个仪表板系统 它由 Excel 图表和仪表报告组成 这些报告是用报告服务 2008 我有一个饼图 其中包含前 5 个最佳产品以及分配给每个产品的受保方数量 我想通过单击图表的系列区域 产品描述 来增强这一点 并希望它打
  • Golang:递归数据结构

    我有一个简单的问题 我正在尝试用切片在 Golang 中重现这个递归数据结构 type Trie map byte Trie 现在 我有一些使用下面的递归数据结构和切片的 粗略 源代码 一切正常 除了我的类型结构是一个结构而不是结构切片 理
  • STL 映射与向量的迭代器访问性能?

    使用迭代器循环 STL 映射与使用向量之间的性能差异是什么 我想使用映射键进行插入 删除和一些访问 但我还需要定期访问every地图中的元素 对于映射和向量 迭代整个集合的时间复杂度为 O N 然而 就像列表与向量一样 向量连续存储元素 因
  • DataFrame 中不能有调用集合操作的地图类型列

    org apache spark sql AnalysisException 在调用集合操作 相交 例外等 的DataFrame中不能有映射类型列 但列map col的类型是map 我有一个配置单元表 其中有一列 MAP
  • 元素以任意顺序出现任意次数的 xml 架构构造

    我想编写一个 xml 模式 它可以接受一些可以以任何顺序出现任意次数的元素 就像下面的例子一样 它应该满足所有相似的组合 请帮助我并提前致谢 实施例1
  • WPF DataGrid - 添加新行时如何保持关注 DataGrid 的底部?

    我在用DataGrid http msdn microsoft com en us library system windows controls datagrid VS 95 aspx来自WPF工具包 http www codeplex
  • 尝试使用没有过滤器的广播接收器

    IntentFilter intentFilter new IntentFilter test registerReceiver mReceiver intentFilter 我想要没有过滤器registerReceiver mReceiv
  • 如何防止 Apache httpd (MAMP) 中的 http 文件缓存

    我正在 MAMP 中开发一个单页 Javascript 应用程序 我的 JavaScript 和 HTML 模板文件在请求之间被缓存 有没有一种简单的方法可以在 MAMP 中指示我想要阻止 http 文件缓存 可能与一个 htaccess文
  • Laravel Eloquent 在连接表上的位置

    我在 laravel 5 Eloquent 中有两个实体 Foo 和 FooType 具有 oneToMany 关系 class Foo public function fooTypes return this gt hasMany App
  • WooCommerce API 在媒体中创建图像,即使它们存在

    可能是什么原因 尝试通过 REST API 批量更新 WooCommerce 中的产品图像 和价格 图片已存在于 WordPress 媒体库中 并且链接已正确复制 然而 它不是使用图像而是创建新图像 请求 邮寄 网址 Body update
  • 如何将装饰器中的变量传递给装饰函数中的函数参数?

    我正在学习Python 希望有人指出我正确的方法 这就是我想要在下面做的事情 def decorate function def wrap function args kwargs str Hello This is what I want