草庐IT

sched_yield

全部标签

python - 为什么在使用 yield 时我不能更改正在迭代的列表

我这里有一些可重现的代码:deftest():a=[0,1,2,3]for_inrange(len(a)):a.append(a.pop(0))foriinrange(2,4):print(a)yield(i,a)打印出来:[1,2,3,0][1,2,3,0][2,3,0,1][2,3,0,1][3,0,1,2][3,0,1,2][0,1,2,3][0,1,2,3]这是我所期望的,但是当我执行list(test())时,我得到:[(2,[0,1,2,3]),(3,[0,1,2,3]),(2,[0,1,2,3]),(3,[0,1,2,3]),(2,[0,1,2,3]),(3,[0,1,2

python - 当我不需要 yield 返回值时,@defer.inlineCallbacks 是什么意思?

在scrapy.core.engineExecutionEngine方法启动@defer.inlineCallbacksdefstart(self):"""Starttheexecutionengine"""assertnotself.running,"Enginealreadyrunning"self.start_time=time()yieldself.signals.send_catch_log_deferred(signal=signals.engine_started)self.running=Trueself._closewait=defer.Deferred()yield

python - 在 python 中混合 yield 和 return 语句是一种好习惯吗?

我很想有以下行为:deffoo(bar=None):ifbar:returnother_function(other_thing[bar])else:foriinother_thing:yieldother_function(i)想法是该函数可以用作生成器来构建所有实例,或者它可以用于返回特定实例。这是在Python中执行此操作的好方法吗?如果没有,有没有更好的方法。 最佳答案 只有在Python3中语法上才有可能有returnvalue和yield在同一个函数中,在Python2中它将导致:SyntaxError:'return'

python - 为什么 yield 可​​以指数化?

我认为我可以通过直接访问通过send传递给生成器的值的索引来简化我的python(2.7.10)代码,并且对代码运行感到惊讶。然后我发现应用于yield的索引实际上没有做任何事情,也没有抛出异常:defgen1():t=yield[0]asserttyieldFalseg=gen1()next(g)g.send('char_str')但是,如果我尝试索引yield三次或更多次,则会出现异常:defgen1():t=yield[0][0][0]asserttyieldFalseg=gen1()next(g)g.send('char_str')抛出TypeError:'int'object

Python 产量(从 Ruby 迁移): How can I write a function without arguments and only with yield to do prints?

我一直在将Ruby代码转换为Python代码,现在我被这个包含yield的函数困住了:defthree_print():yieldyieldyield由于三个yield语句,我想调用该函数并告诉它打印“Hello”三次。由于该函数不接受任何参数,因此出现错误。你能告诉我让它工作的最简单方法吗?谢谢。 最佳答案 Ruby中的yield和Python中的yield是两个截然不同的东西。在Ruby中,yield运行一个作为参数传递给函数的block。ruby:defthreeyieldyieldyieldendthree{puts'hel

python - 修改 yield from 的返回值

假设我有这些解析器:parsers={".foo":parse_foo,".bar",parse_bar}parse_foo和parse_bar都是逐行生成的生成器。如果我想创建一个单独的调度函数,我会这样做:defparse(ext):yieldfromparsers[ext]()yieldfrom语法使我能够轻松地在生成器上下传送信息。有没有办法在修改良率结果的同时保持隧道效应?在打破隧道的同时这样做很容易:defparse(ext):forresultinparsers[ext]():#Addtheextensiontotheresultresult.ext=extyieldre

python - 为什么 Python 2.7 不允许我在 yield 之后隐式地重新引发异常?

当在except:block中屈服时,我注意到Python2.7.5中有一些奇怪的行为:defgenerator():try:raiseException()except:yieldraiselist(generator())此代码因TypeError:exceptionsmustbeold-styleclassesorderivedfromBaseException,notNoneType失败为什么Python这样做而不是重新引发异常,如果yield不是在raise之前它会这样做?(显然Python3已经修复了这个缺陷,并且该函数会像您期望的那样生成[None]列表。)(解决方法是将

python - yield 在 python 2.7 中有什么作用?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:ThePythonyieldkeywordexplained好吧,我可能把这个问题措辞得很糟糕,但这就是我遇到的情况。我试图理解Python2.7中的这行代码:yield(padding_zeros+number_string).encode("ascii")在这行代码中,padding_zeros是一个由可变个数的'0'组成的字符串,number_string是一个字符串形式的数字,可以是任意数字在0到10000之间。我非常有信心.encode("ascii")只是将yield的输出转换为ascii。我完全

python - 使用 sched 模块在给定时间运行

我正在编写一个需要在两个给定时间之间运行的python脚本。我需要使用sched模块中的构建,因为此脚本需要能够直接在任何具有python2.7的机器上运行,以减少配置时间。(所以CRON不是一个选项)几个变量定义了运行时间的设置,这里set_timer_start=0600和set_timer_end=0900是用HHMM写的。我能够在正确的时间停止脚本。我不知道sched究竟是如何工作的(python文档页面对我来说没有多大意义),但据我所知它在日期/时间(纪元)而我只希望它在给定时间运行(HHMM)。任何人都可以给我一个示例(或链接),说明如何使用调度程序并计算下一次运行日期/时

python - 有没有办法自动获取许多股票的一般信息,如市盈率、 yield 等?

我知道一些在R或python中获取每日股票价格和交易量的方法,但只是想知道这些是否是一种方法(使用R或python)来获取有关股票的更多信息,例如市盈率、公司网站、yield等,最好不仅是当前值,还有历史值。谢谢。 最佳答案 历史会很困难。quantmodR的包有getQuote,它与yahooQF一起将是获取当前值所需的一切。require("quantmod")getQuote("GS",what=yahooQF(c("MarketCapitalization","Earnings/Share","P/ERatio","Book