2012-06-04 55 views
-3

我不知道紅寶石,但我知道蟒蛇。什麼是運行下面的代碼的python等價物?這個例子來自redis網站。那麼,這是什麼?Redis lua腳本 - 用Ruby編寫的lua腳本的python等價物是什麼?

<<EOF? 

會是在Python:

RandomPushScript = """ 
    Lua code here 
    """ 


RandomPushScript = <<EOF 
    local i = tonumber(ARGV[1]) 
    local res 
    math.randomseed(tonumber(ARGV[2])) 
    while (i > 0) do 
     res = redis.call('lpush',KEYS[1],math.random()) 
     i = i-1 
    end 
    return res 
EOF 

r.del(:mylist) 
puts r.eval(RandomPushScript,1,:mylist,10,rand(2**32)) 
+2

[Stack Overflow不是代碼翻譯服務](http://meta.stackexchange.com/a/129362/164572) –

+0

對不起,「用Ruby編寫的Lua腳本」? Lua和Ruby是不同的語言,Python還不到三分之一。 –

+0

@DanielRoseman如上所示,這是一個Ruby腳本,它似乎創建了一個Lua腳本作爲一個大字符串,然後對它做了一些處理。 – Phrogz

回答

3

<<表示定界符。之後有一個標記(這裏是EOF)。下一行是一個字符串,直到標記再次出現。 所以是的,"""將是Python的等價物。

+0

對於蟒蛇男人....這裏是我發佈這些問題後發現的例子。 http://iam.richardbucker.com/2012/01/18/redis-eval-in-2-6-0/ – Tampa