Python:将函数作为参数传递,并设置选项

2024-04-15

在Python中,我需要调用许多非常相似的函数相同的输入参数 sampleA and sampleB。唯一的问题是其中一些功能需要option需要设置,有些则没有。 例如:

import scipy.stats
scipy.stats.mannwhitneyu(sampleA, sampleB)
[...some actions...]
scipy.stats.mstats.ks_twosamp(sampleA, sampleB, alternative='greater')
[...same actions as above...]
scipy.stats.mstats.mannwhitneyu(sampleA, sampleB, use_continuity=True)
[...same actions as above...]

因此我想传递此类函数的名称作为更通用函数的输入参数computeStats, 也sampleA and sampleB,但我不知道如何处理有时必须使用的选项。

def computeStats(functionName, sampleA, sampleB, options???):
   functionName(sampleA, sampleB)  #and options set when necessary
   ...some actions...
   return testStatistic

如何指定有时必须设置、有时不需要设置的选项?


Use **kwargs https://stackoverflow.com/questions/1415812/why-use-kwargs-in-python-what-are-some-real-world-advantages-over-using-named:

def computeStats(func, sampleA, sampleB, **kwargs):
   func(sampleA, sampleB, **kwargs)
   ...some actions...
   return testStatistic

然后你就可以使用computeStats()像这样:

computeStats(scipy.stats.mstats.ks_twosamp, sampleA, sampleB, alternative='greater')

也就是说,我并不完全相信您根本需要这个。简单点怎么样

def postprocessStats(testStatistic):
   ...some actions...
   return testStatistic

postprocessStats(scipy.stats.mstats.ks_twosamp(sampleA, sampleB, alternative='greater'))

?

我认为这更容易阅读,同时也更通用。

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

Python:将函数作为参数传递,并设置选项 的相关文章

  • 我正在用 python 编写一个电报机器人

    我想通过Python编写一个电报机器人 但它不起作用 import telebot bot telebot TeleBot my token bot message handler content types text def sendin
  • 在 Windows 上使用 Python 打开设备句柄

    我正在尝试使用 Giveio sys 驱动程序 该驱动程序需要先打开一个 文件 然后才能访问受保护的内存 我正在查看 WinAVR AVRdude 中的 C 示例 它使用以下语法 define DRIVERNAME giveio HANDL
  • 不要在异常堆栈中显示 Python raise-line

    当我在 Python 库中引发自己的异常时 异常堆栈将引发行本身显示为堆栈的最后一项 这显然不是一个错误 在概念上是正确的 但是当您在外部使用代码 例如作为模块 时 它会将重点放在对调试无用的东西上 有没有办法避免这种情况并强制 Pytho
  • Python中的键盘可中断阻塞队列

    It seems import Queue Queue Queue get timeout 10 键盘可中断 ctrl c 而 import Queue Queue Queue get 不是 我总是可以创建一个循环 import Queue
  • 使用自定义元素类在 Python 中解析 xml

    我想使用 Python 的 xml etree ElementTree 模块解析 xml 文档 但是 我希望生成的树对象中的所有元素都具有我定义的一些类方法 这建议创建我自己的 Python 元素类的子类 但我无法告诉解析器在解析时使用我自
  • 为什么我在 Python 中收到“连接被拒绝”错误? (插座)

    我是套接字新手 请原谅我完全缺乏理解 我有一个服务器脚本 server py usr bin python import socket import the socket module s socket socket Create a so
  • 使用Python mysql.connector远程连接MySQL

    以下代码 在同一 LAN 内与 mysql 服务器不同的机器上运行 使用 Python3 和 mysql connector 本地连接到 MySQL 数据库 import mysql connector cnx mysql connecto
  • 混淆矩阵错误“分类指标无法处理多标签指标和多类目标的混合”

    我得到了 Classification metrics can t handle a mix of multilabel indicator and multiclass targets 当我尝试使用混淆矩阵时出错 我正在做我的第一个深度学
  • 将 pandas DataFrame 与 Series 进行比较

    我看过this https stackoverflow com questions 26285661 working with comparing dataframes and series and generating new dataf
  • 有没有办法在Python中调用子类定义的方法?

    The init 方法定义了创建类的实例时要执行的操作 创建子类时我可以做类似的事情吗 假设我有抽象类Entity class Entity def onsubclasscreation cls for var in cls annotat
  • 使用 pymongo 查询空字段

    我想使用 python 查询 mongo 中的空字段 但是它很难处理单词 null 或 false 它要么给我错误 它们在 python 中未定义 要么在 mongo 中搜索字符串 null 和 false 这两种情况我都不希望发生 col
  • 结束一天(日期时间)的最优雅的方式是什么?

    我目前正在编写一些报告代码 允许用户选择指定日期范围 它的工作方式 简化 是 用户 可选 指定年份 用户 可选 指定月份 用户 可选 指定一天 这是一个代码片段 以及描述我想要的内容的注释like to do from datetime i
  • Python - Map/Reduce - 如何在使用 DISCO 计数单词示例中读取 JSON 特定字段

    我正在按照 DISCO 示例来计算文件中的单词数 将单词数作为 Map Reduce 作业 http discoproject org doc disco start tutorial html 我对此工作没有任何问题 但是我想尝试从包含
  • numpy.polyfit 没有关键字“cov”

    我试图使用 polyfit 来找到一组数据的最佳拟合直线 但我还需要知道参数的不确定性 所以我也想要协方差矩阵 在线文档建议我写 polyfit x y 2 cov True 但这给出了错误 类型错误 polyfit 得到了意外的关键字参数
  • 传递宏作为参数 jinja dbt

    Today date milliseconds 是我在项目中的宏 如何将此宏重定向为参数 以便默认情况下我可以在 yml 中编写另一个宏 test valid date model column name exclude condition
  • 了解 Tensorflow 中的 while 循环

    我正在使用用于 Tensorflow 的 Python API https www tensorflow org api docs python 我正在努力实施罗森布罗克函数 https www sfu ca ssurjano rosen
  • Kivy:滚动缩放

    有没有办法在桌面 kivy 应用程序上放大图像 例如使用鼠标滚轮缩放 这里似乎讨论过 https github com kivy kivy issues 3563 https github com kivy kivy issues 3563
  • 为什么这个记忆器适用于递归函数?

    我不明白为什么下面的代码是这样的fib以线性而非指数时间运行 def memoize obj Memoization decorator from PythonDecoratorLibrary Ignores kwargs cache ob
  • python字符串包含双引号字符

    我的输入字符串由字符组成 包括双引号和单引号 和 B SS JU PQ AD DDSFD ABD E J 但是 当我从文本文件打开上述输入并打印它时 第三行中的双引号 被打印为 xe2 x80 x9d 我的目标是进行简单的字符计数 B 2
  • 预提交钩子 git 错误

    我正在尝试在 python 中执行预提交 git hook 以检查文件的行长度是否小于 80 个字符 但是我收到没有此类文件 目录的错误 我在 fedora 上并设置了 usr bin python help 将不胜感激 usr bin e

随机推荐

  • 为什么我不能将会话 bean 作为 Java EE 5 中的 JSF 支持 bean

    AFAIK JBoss Seam 的全部目的是集成 EJB 和 JSF Seam in Action 一书说道 根据设计 EJB 组件不能直接绑定到 JSF 视图 EJB 真是太棒了 组件具有可扩展性 事务性 线程安全性和安全性 但作用不大
  • 有没有办法在 venv/web 服务器中安装 Tesseract OCR?

    我制作了一个执行 OCR 功能的 Python 脚本 然后回收了该脚本并使用 Flask 制作了一个 Web 应用程序 Web 应用程序及其库位于 virtualenv 中 但该应用程序使用操作系统 Windows 中安装的 Tessera
  • load_plugin_textdomain 不起作用

    嘿 我正在尝试本地化一个名为 Donate Plus 的插件 技术上本地化 该插件附带 en CA 和 de DE 文件 我尝试创建 he IL 文件但没有成功 所以我尝试使用插件附带的 de 文件 但没有成功 我已将 wp config
  • SwiftUI:不同层次结构中的弹出框+工作表问题

    我遇到了呈现弹出框然后尝试呈现表格的问题 该表无法呈现 我准备了一个显示两个按钮的简短代码 第一个在其自身上呈现一个弹出窗口 单击此按钮 第二个呈现一张纸 然后这个按钮 重现步骤 可在 iPad 上重现 单击第一个按钮 会出现一个弹出窗口
  • 使用 jdk 8 时 Java 模态对话框冻结整个应用程序

    很少 当使用 Java Swing 应用程序显示模式对话框时JDK1 8 0 144 整个应用程序被冻结 我在 JDK bug 数据库中找不到相关的 bug 唯一看起来远程相关的是this one https bugs openjdk ja
  • 如何在 TypeScript 中定义通用对象数组,每个项目都有不同的模板参数[重复]

    这个问题在这里已经有答案了 我试图为表单定义一个字段数组 其中每个项目可能有不同的类型 我定义了这些类型 interface FormData value1 number value2 number null value3 string v
  • 如何将 `std::chrono::milliseconds` 转换为 `boost::posix_time::milliseconds`

    我正在使用 boost asio deadline timer 像这样在async read操作在一个TCP套接字 我在用提升1 61 long time out millis 2000 boost asio deadline timer
  • C# 使用子类参数重写方法

    我正在努力实现这样的目标 public abstract class BaseEvent public abstract void Dispatch IEventHandler handler public class MyEvent Ba
  • Android 上检测触摸区域

    是否有可能检测到每个被触摸的像素 更具体地说 当用户触摸屏幕时 是否可以跟踪用户触摸的点簇的所有 x y 坐标 如何区分用户用拇指绘图和用指尖绘图的区别 我想根据用户触摸屏幕的方式反映画笔的差异 并且还想跟踪随着时间的推移触摸的所有像素的
  • rake 资产预编译失败

    当我跑步时bundle exec rake assets precompile trace 我的预编译失败 但我看不出任何具体原因 请参阅此粘贴箱以获取我的输出 http pastebin com zggZyPyM http pastebi
  • Android - 拦截并传递所有触摸事件

    我有一个覆盖 ViewGroup 它是屏幕的大小 我想用它来在用户与应用程序交互时显示效果 但仍然将 onTouch 事件传递给任何底层视图 我对所有 MotionEvents 不仅仅是 DOWN 感兴趣 所以 onInterceptTou
  • 找不到模块:错误:无法解析模块“semantic-ui-css”

    我正在尝试使用Webpack https webpack github io 语义用户界面 http semantic ui com 但没有成功 我试过 npm i semantic ui css In my index js import
  • OData / WCF 数据服务不适用于复杂类型

    我对 OData 和 WCF 数据服务是全新的 所以这可能是一个简单的问题 我正在使用 VS Web Developer Express 2010 其中我在控制台应用程序中托管了一个非常简单的 WCF 数据服务 它从存储库 位于单独的 dl
  • EditText 在 ListView 中滚动时丢失内容?

    我有列表项EditText里面不知道会有多少物品 当我输入一些文本时遇到问题EditText 然后向下滚动ListView 当我再次向上滚动后 我的第一个中没有文字EditText 或者有一些来自其他人的文字EditText from Li
  • 如何避免在 Java 中检查空值?

    I use x null避免NullPointerException https docs oracle com javase 9 docs api java lang NullPointerException html 还有其他选择吗 i
  • 通过匹配模式过滤日志 - log4j

    我的 log4j xml 文件中有以下布局模式 d ISO8601 c p t x 9 5 4 RC12 m n 我想要的是 每当我收到包含消息的日志时process proc completed 应该跳过 我的意思是除了包含此消息的日志之
  • 我的 if 语句有什么问题?

    我现在正在尝试探索帕斯卡 我遇到了一些编译器错误 我写了一个 if else if 语句 如下所示 if input y or input Y then begin writeln blah blah end else if input n
  • GCC 内联汇编错误:“‘int’的操作数大小不匹配”

    首先 如果有人知道标准 C 库的函数 则会打印 一个字符串 无需寻找二进制零 但需要绘制字符数 请告诉我 否则 我会遇到这个问题 void printStringWithLength char str ptr int n chars asm
  • .net 应用程序挂起。奇怪的崩溃转储

    生产服务器有一个 24x7 运行的应用程序 有时它开始消耗接近 50 的 CPU 我无法在本地重现它 但我用 adplus 做了内存转储 服务器有Windows 2008 Server 64位 NET 3 5 该应用程序侦听 MSMQ 并有
  • Python:将函数作为参数传递,并设置选项

    在Python中 我需要调用许多非常相似的函数相同的输入参数 sampleA and sampleB 唯一的问题是其中一些功能需要option需要设置 有些则没有 例如 import scipy stats scipy stats mann