如何解决Python:本地范围内的exec
发布之前,我已阅读以下内容:
但是我无法使我的代码正常工作。
代码如下:
import string
arr = [0,1,2,3,4]
required = 4
red = ['0']
alpha = string.printable[10:62]
ss = ''
it = len(arr) - required + 1
for i in range(required):
now = alpha[i]
rd = '-'.join(red)
ss += '\t' * (i + 1) + f'for {now} in range({it}-{rd}):\n'
red.append(now)
exec('def inner_reducer():\n' + ss + '\t' * (required + 1) + f'yield {red[-1]}')
a = inner_reducer()
print(a.__next__())
print(a.__next__())
print(a.__next__())
print(a.__next__())
我需要一个arr
和required
作为参数的生成器,而不是直接在全局范围内编写,分配给生成器后,调用__next__()
以生成值。
任何帮助都是有意义的。
解决方法
@JordanBrière代码100%有效,但是我需要将其写入到生成器中,该生成器将数组和数字作为参数并产生值。这样我就可以导入该功能
您可以使用工厂功能。例如
var Context = new Context();
var docs = Context.Docs.AsNoTracking()
.Where(d => d.froms == "active")
.FirstOrDefault();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。