相关疑难解决方法(0)

如何从生成器中选择一个项目(在python中)?

我有一个如下的生成器函数:

def myfunct():
  ...
  yield result
Run Code Online (Sandbox Code Playgroud)

调用此函数的常用方法是:

for r in myfunct():
  dostuff(r)
Run Code Online (Sandbox Code Playgroud)

我的问题是,有什么方法可以随时从发电机中获取一个元素吗?例如,我想做类似的事情:

while True:
  ...
  if something:
      my_element = pick_just_one_element(myfunct())
      dostuff(my_element)
  ...
Run Code Online (Sandbox Code Playgroud)

python iterator generator python-2.x

189
推荐指数
4
解决办法
12万
查看次数

将函数的所有参数传递给另一个函数

我希望将传递给函数(func1)的所有参数作为参数传递给另一个函数(func2)里面func1 这可以*args, *kwargs在被调用中完成func1并传递给它们func2,但是还有另一种方法吗?

本来

def func1(*args, **kwargs):
    func2(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

但如果我的func1签名是

def func1(a=1, b=2, c=3):
Run Code Online (Sandbox Code Playgroud)

如何在不使用的情况下将它们全部发送到func2

def func1(a=1, b=2, c=3):
    func2(a, b, c)
Run Code Online (Sandbox Code Playgroud)

有没有像在JavaScript中的方式callee.arguments

python arguments function

62
推荐指数
3
解决办法
3万
查看次数

从关键字参数生成参数字典

我正在尝试生成一个包含非None参数当前调用的名称和值的字典。这非常感觉应该是内置的,但在 Python 文档中找不到任何能完全做到这一点的东西。

\n

例如,当

\n
def foo(limit=None, offset=None, lower_bound=None, upper_bound=None):\n\n   # code to generate dict of non-`None` named arguments (see below)\n\n   ...  # other things happen later\n
Run Code Online (Sandbox Code Playgroud)\n

使用参数调用foo(limit=5, lower_bound=100),我需要以下字典:{limit=5, lower_bound=100}

\n

有什么东西可以方便地为我做到这一点吗?

\n
\n

潜在的解决方案

\n

到目前为止,我已经研究了以下内容,所有这些似乎都有缺陷:

\n
    \n
  1. 手动创建列表(它的缺点是有更多地方可以进行更改,例如,参数名称已更改)
  2. \n
\n
def foo(limit=None, offset=None, lower_bound=None, upper_bound=None):\n    keys = (\'limit\', \'offset\', \'lower_bound\', \'upper_bound\')\n    values = (limit, offset, lower_bound, upper_bound)\n    magic_dict = {k: v for k, v in zip(keys, values) if v is …
Run Code Online (Sandbox Code Playgroud)

python function parameter-passing

7
推荐指数
1
解决办法
751
查看次数