有人可以向我解释为什么使用" print"在下面将继续重新运行代码,但使用" return"只运行一次?你将如何使用" return"重新运行自己的代码?而不是" print" ??
谢谢你" ll!
def stop():
while True:
oanda = oandapy.API(environment="practice", access_token="xxxxxxxx")
response = oanda.get_prices(instruments="EUR_USD")
prices = response.get("prices")
asking_price = prices[0].get("ask")
s = asking_price - .001
print s
time.sleep(heartbeat)
print stop()
VS
def stop():
while True:
oanda = oandapy.API(environment="practice", access_token="xxxxxxxxxx")
response = oanda.get_prices(instruments="EUR_USD")
prices = response.get("prices")
asking_price = prices[0].get("ask")
s = asking_price - .001
return s
time.sleep(heartbeat)
print stop()
答案 0 :(得分:4)
return s
从stop()
返回。它确实不 continue
while
循环。如果你想留在循环中,不要从函数返回。
答案 1 :(得分:3)
问强>
有人可以向我解释为什么使用" print"在下面的 将继续重新运行代码,但使用" return"只会运行一次吗?
:一种。强>
return完全退出该功能,因此无法重新启动。
问强>
你将如何重新运行自己的代码? "返回"而不是" print"?
使用"yield"代替"返回"创建一种称为generator的可恢复函数。
例如:
def stop():
while True:
oanda = oandapy.API(environment="practice", access_token="xxxxxxxx")
response = oanda.get_prices(instruments="EUR_USD")
prices = response.get("prices")
asking_price = prices[0].get("ask")
s = asking_price - .001
yield s
g = stop()
print next(g)
print next(g)
print next(g)