我有一个如下的生成器函数:
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) 我希望将传递给函数(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?
我正在尝试生成一个包含非None参数当前调用的名称和值的字典。这非常感觉应该是内置的,但在 Python 文档中找不到任何能完全做到这一点的东西。
例如,当
\ndef 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\nRun Code Online (Sandbox Code Playgroud)\n使用参数调用foo(limit=5, lower_bound=100),我需要以下字典:{limit=5, lower_bound=100}。
有什么东西可以方便地为我做到这一点吗?
\n到目前为止,我已经研究了以下内容,所有这些似乎都有缺陷:
\ndef 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)