Python 函数可选参数 - 可以添加为条件吗?

2024-03-02

是否可以以某种方式将条件语句分配给可选参数?

我最初的尝试使用以下结构,但没有成功:

y = {some value} if x == {someValue} else {anotherValue}

其中 x 已预先分配。

更具体地说,我希望我的函数签名看起来像:

def x(a, b = 'a' if someModule.someFunction() else someModule.someOtherFunction()):
   :
   :

非常感谢


当然,你就是这样做的。您可能需要记住这一点b的默认值将在定义函数后立即设置,这可能是不可取的:

def test():
    print("I'm called only once")
    return False

def foo(b=5 if test() else 10):
    print(b)

foo()
foo()

和输出:

I'm called only once
10
10

仅仅因为这是可能的并不意味着您应该这样做。至少我不会。使用的详细方式None作为占位符更容易理解:

def foo(b=None):
    if b is None:
        b = 5 if test() else 10

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

Python 函数可选参数 - 可以添加为条件吗? 的相关文章

  • Python 3 os.urandom

    在哪里可以找到完整的教程或文档os urandom 我需要获得一个随机 int 来从 80 个字符的字符串中选择一个字符 如果你只需要一个随机整数 你可以使用random randint a b 来自随机模块 http docs pytho
  • Kivy - 有所有颜色名称的列表吗?

    在 Kivy 中 小部件 color属性允许输入其值作为字符串颜色名称 也 例如在 kv file Label color red 是否有所有可能的颜色名称的列表 就在这里 来自Kivy 的文档 https kivy org doc sta
  • 删除 Django 1.7 中的应用程序(和关联的数据库表)

    是否可以使用 Django 1 7 迁移来完全删除 卸载应用程序及其所有跟踪 主要是其所有数据库表 如果没有 在 Django 1 7 中执行此操作的适当方法是什么 python manage py migrate
  • Mac OS X 中文件系统的 Unicode 编码在 Python 中不正确?

    在 OS X 和 Python 中处理 Unicode 文件名有点困难 我试图在代码中稍后使用文件名作为正则表达式的输入 但文件名中使用的编码似乎与 sys getfilesystemencoding 告诉我的不同 采取以下代码 usr b
  • sklearn 中的 pca.inverse_transform

    将我的数据拟合后 X 我的数据 pca PCA n components 1 pca fit X X pca pca fit transform X 现在 X pca 具有一维 当我根据定义执行逆变换时 它不是应该返回原始数据 即 X 二维
  • 如果在等待“read -s”时中断,在子进程中运行 bash 会破坏 tty 的标准输出吗?

    正如 Bakuriu 在评论中指出的那样 这基本上与BASH 输入期间按 Ctrl C 会中断当前终端 https stackoverflow com questions 31808863 bash ctrlc during input b
  • Python新式类和__subclasses__函数

    有人可以向我解释为什么这有效 在 Python 2 5 中 class Foo object pass class Bar Foo pass print Foo subclasses 但这不是 class Foo pass class Ba
  • pytest:同一接口的不同实现的可重用测试

    想象一下我已经实现了一个名为的实用程序 可能是一个类 Bar在一个模块中foo 并为其编写了以下测试 测试 foo py from foo import Bar as Implementation from pytest import ma
  • .pyx 文件出现未知文件类型错误

    我正在尝试构建一个包含 pyx 文件的 Python 包 pyregion 但在构建过程中出现错误 检查以下输出 python setup py build running build running build py creating b
  • Geodjango距离查询未检索到正确的结果

    我正在尝试根据地理位置的接近程度来检索一些帖子 正如您在代码中看到的 我正在使用 GeoDjango 并且代码在视图中执行 问题是距离过滤器似乎被完全忽略了 当我检查查询集上的距离时 我得到了预期距离 1m 和 18km 但 18km 的帖
  • 如何在 kotlin 中检查 lambda 空值

    在 Kotlin 中如何检查 lambda 是否为空 例如 我有这样的签名 onError Throwable gt Unit 我如何区分它的默认值是应用于主体还是应用于此函数的值 您无法测试 lambda 的主体是否为空 因此它不包含源代
  • Python:IndexError:修改代码后列表索引超出范围

    我的代码应该提供以下格式的输出 我尝试修改代码 但我破坏了它 import pandas as pd from bs4 import BeautifulSoup as bs from selenium import webdriver im
  • 返回表示每组内最大值的索引的一系列数字位置

    考虑一下这个系列 np random seed 3 1415 s pd Series np random rand 100 pd MultiIndex from product list ABDCE list abcde One Two T
  • SocketIO + Flask 检测断开连接

    我在这里有一个不同的问题 但意识到它可以简化为 如何检测客户端何时从页面断开连接 关闭其页面或单击链接 换句话说 套接字连接关闭 我想制作一个带有更新用户列表的聊天应用程序 并且我在 Python 上使用 Flask 当用户连接时 浏览器发
  • 当数据库不是 Django 模型时,是否可以使用数据库中的表?

    是否可以从应用程序数据库中的表获取查询集 该表不是应用程序中的模型 如果我有一个不是名为 cartable 的模型的表 从概念上讲 我想这样做 myqueryset cartable objects all 有没有相对简单的方法来做到这一点
  • Django Admin 中的反向内联

    我有以下 2 个型号 现在我需要将模型 A 内联到模型 B 的页面上 模型 py class A models Model name models CharField max length 50 class B models Model n
  • 如何与其他用户一起使用 pyenv?

    如何与其他用户一起使用 pyenv 例如 如果我在用户 test 的环境中安装了 pyenv 则当我以 test 身份登录时可以使用 pyenv 但是 当我以其他用户 例如 root 身份登录时如何使用 pyenv 即使你这么做了 我也会s
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460
  • 如何根据第一列创建新列,同时考虑Python Pandas中字母和列表的大小? [复制]

    这个问题在这里已经有答案了 我在 Python Pandas 中有 DataFrame 如下所示 col1 John Simon prd agc Ann White BeN and Ann bad list Ben Wayne 我需要这样做
  • 将上下文管理器的动态可迭代链接到单个 with 语句

    我有一堆想要链接的上下文管理器 第一眼看上去 contextlib nested看起来是一个合适的解决方案 但是 此方法在文档中被标记为已弃用 该文档还指出最新的with声明直接允许这样做 自 2 7 版起已弃用 with 语句现在支持此

随机推荐

  • 更改 url 中的主机名

    我正在尝试使用 python 更改 url 中的主机名 并且已经使用 urlparse 模块有一段时间了 但没有找到令人满意的解决方案 举个例子 考虑一下 url https www google dk 80 barbaz https ww
  • 使用 Json.Net 序列化哈希表

    我有一个哈希表 其键为整数类型 但是当使用 json net 反序列化时 键以字符串形式返回 有没有办法使用 json net 序列化 反序列化将键类型保留在哈希表上 该哈希表是 MyType 类型的属性 var settings new
  • Facebook 分享按钮

    如何获取 Facebook 分享按钮 现在他们没有显示获取代码 首先在标签中定义一些属性 如下所示 gt xmlns http www w3 org 1999 xhtml gt xmlns fb http www facebook com
  • 如何在chart.js中应用渐变颜色?

    我正在使用 Chart js 库制作折线图 在这里我想将线条的颜色更改为渐变颜色 我试过的代码 const gradientFill ctx createLinearGradient 500 0 100 0 gradientFill add
  • Swift 中的 UserDefaults 让人疯狂[UI]

    当我开始接触 Swift 和 SwiftUI 时 我发现从 UIKit 迁移的过程非常困难 即使在尝试理解我在网上找到的许多教程之后 目前仍被 UserDefaults 所困扰 请告诉我我在这里做错了什么 非常简单的代码 将 bool 值注
  • 没有自己的文件夹的 git 子模块

    我想将我的项目的某些部分 例如我的 jQuery 插件 外部化 我正在为此目的研究子模块 它们看起来相当完美 因为它们可以在一个集中点进行管理和更新 我唯一的问题是 它们克隆到一个文件夹中 这给我留下了这样的结构 js plugin one
  • 水豚找到按钮但点击它没有任何反应

    更新 我删除了大部分 javascript 依赖项并且它起作用了 不知道哪个库或代码是邪恶的部分 我不需要它们 简单的表单 两个输入字段和一个按钮 fill in cellNumber with gt 13245678 fill in pa
  • 反转 Pandas DataFrame 中的行值

    我正在处理 pandas 数据框 我想找到每行中最远的非空值 然后反转这些值的顺序并输出一个数据框 其中行值反转 而不在第一列中留下空值 本质上是反转列顺序并将非空值向左移动 IN 1 2 3 4 5 1 a b c d e 2 a b c
  • 为什么 Nuget Javascript 包复制到 Scripts 文件夹

    当我安装时将 jQuery 从 Nuget 导入到我的 VS C 项目中 jquery js 最终出现在我的包文件夹中 这很好 因为我不想将此文件签入我的源代码管理中 因为它不是我的代码 而且我永远不会更改它 在这种情况下 它相当于我可能通
  • Safari 5.1 打破 CSS 表格单元格间距

    在更新到 Safari 5 1 之前 我的网站在所有主要浏览器上都运行良好 现在 主要导航已失效 我正在使用display table cell在列表元素内的锚元素上 并且还使用了font size 0hack 删除菜单元素之间的间距 有其
  • 在R中导入带有特殊字符的数据

    下图显示了我在 R 中导入数据 记事本 之前和导入之后的数据 我使用以下命令将其导入到 R 中 Data lt read csv data csv stringsAsFactors FALSE header TRUE quote 可以看到a
  • vim:希望它仅针对某些文件类型打开设置

    我看过this https stackoverflow com questions 158968 changing vim indentation behavior by file type但这并没有太多帮助 可能是我读得不太好 基本上我想
  • 从 Django 中的第 3 方应用程序收集消息

    如何从位于 virtualenv 目录中的第 3 方库生成消息 manage py makemessages 我尝试简单地将消息添加到 po 文件中 但每次运行 makemessages 命令时 我的翻译都会消失 非常感谢 manage p
  • Angular 6:错误:安装 google-translate-api 后无法解析“./package”

    我刚刚安装了google translate api via npm with npm install save google translate api 我没有收到任何错误消息 但是当我尝试运行时npm start它显示以下错误 ERRO
  • 如果属性与过滤器不匹配则隐藏 div 元素

    我正在我的网站上构建一个简单的过滤功能 一旦用户从位置选择 start address and end address下拉菜单 然后按 go button 我如何只显示包含 a 的 div span class waypoint span
  • 参数数据类型文本对于下层函数的参数 1 无效

    在我的应用程序的搜索功能中 我实现了一个搜索功能 该功能对数据库执行以下语句 resultsquery db DBMovies Where m gt m Actors ToLower Contains q ToLower 在部分q ToLo
  • 从 Dropbox 获取直接文件链接

    有没有办法在 Android 代码中从 Dropbox 获取 直接文件链接 而不使用 Dropbox API 我对此进行了很多搜索 但没有找到解决方案 任何回应将不胜感激 获取文件链接例如https www dropbox com s bl
  • VS中如何选择重载方法建议顺序?

    假设一个类有一些具有相同名称和不同参数的方法 我如何告诉 VS 按特定顺序建议它们 这是不可能的 简单 重载按参数数量升序排列 怀疑您确实需要编写一个插件
  • automapper 带有动作的地图集合

    我有以下代码 IList
  • Python 函数可选参数 - 可以添加为条件吗?

    是否可以以某种方式将条件语句分配给可选参数 我最初的尝试使用以下结构 但没有成功 y some value if x someValue else anotherValue 其中 x 已预先分配 更具体地说 我希望我的函数签名看起来像 de