当前位置: 首页 > 面试题库 >

在条件条件下传递关键字参数的Python方法

祁修平
2023-03-14
问题内容

有没有更Python的方式来做到这一点?

if authenticate:
    connect(username="foo")
else:
    connect(username="foo", password="bar", otherarg="zed")

问题答案:
  1. 您可以将它们添加到类似kwarg的列表中:
    connect_kwargs = dict(username="foo")
    

    if authenticate:
    connect_kwargs[‘password’] = “bar”
    connect_kwargs[‘otherarg’] = “zed”
    connect(**connect_kwargs)


当您可以将一组复杂的选项传递给函数时,这有时会很有帮助。在这种简单的情况下,我认为您有更好的选择,但是可以将其视为 更pythonic,
因为它不会username="foo"像OP那样重复两次。

  1. 尽管仅当您知道默认参数是什么时,它仍然可以使用这种替代方法。由于if子句重复,我也不会认为它非常“ pythonic” 。
    password = "bar" if authenticate else None
    

    otherarg = “zed” if authenticate else None
    connect(username=”foo”, password=password, otherarg=otherarg)



 类似资料:
  • 问题内容: 我梦见一个带有显式关键字args的Python方法: 我想获得仅包含调用者实际上传递给方法的那些参数的字典,就像,但是我不希望调用者能够传递任何旧的随机args,而不是。 那么:有这样的咒语吗?就我而言,我碰巧能够将每个参数与其默认值进行比较,以找到不同的参数,但这有点不雅致,当您有9个参数时会变得乏味。为了获得奖励积分,即使调用者传入分配了默认值的关键字参数,它也可以告诉我: 调皮!

  • 我从Spring文档(https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/cache/annotation/Cacheable.html#condition--)中读到,可以使用SpEL指定方法参数的条件。 我一直在尝试同样的方法,但失败了。以下是我的方法: 这是我的POJO: 但

  • 问题内容: 我想使用字典在python中调用一个函数。 这是一些代码: 这可以打印,但我希望只打印test。 我希望它可以类似地工作以获取更多参数: 这可能吗? 问题答案: 最后自己解决了。很简单,我只是缺少运算符来解开字典 因此,我的示例变为:

  • 问题内容: 我在过滤数据框时遇到问题。 我想 删除计数频率低于4的城市行, 例如SYD和SEL。 如果不按城市逐个手动删除它们,该怎么办? 问题答案: 在这里,你去过滤器 解决方案二

  • 目前为止,我们使用函数时所用的参数都是位置参数,即传入函数的实际参数必须与形式参数的数量和位置对应。而本节将介绍的关键字参数,则可以避免牢记参数位置的麻烦,令函数的调用和参数传递更加灵活方便。 关键字参数 是指使用形式参数的名字来确定输入的参数值。通过此方式指定函数实参时,不再需要与形参的位置完全一致,只要将参数名写正确即可。 因此,Python 函数的参数名应该具有更好的语义,这样程序可以立刻明

  • 我成功地尝试在三个活动之间传递数据。那就是: (数据3)活动1(数据1)- 现在的问题是: 我希望使用条件在这些活动之间传递数据。这是在Activity2中,在将数据发送到Activity3之前,我想检查一下 这是名为PickCard的Activity1的代码。Java语言 下面是Activity2 BuildWord的代码。Java语言 这是名为DropCard的Activity3的代码。Jav