我按照这个 SO 答案创建了一个本地 MongoDB 副本集。
docker-compose 文件:
services:
mongo1:
container_name: mongo1
image: mongo:4.2
ports:
- 27017:27017
restart: always
command: ["--bind_ip_all", "--replSet", "rs" ]
mongo2:
container_name: mongo2
image: mongo:4.2
ports:
- 27018:27017
restart: always
command: ["--bind_ip_all", "--replSet", "rs" ]
mongo3:
container_name: mongo3
image: mongo:4.2
ports:
- 27019:27017
restart: always
command: ["--bind_ip_all", "--replSet", "rs" ]
replica_set:
image: mongo:4.2
container_name: replica_set
depends_on:
- mongo1
- mongo2
- mongo3
volume:
- ./initiate_replica_set.sh:/initiate_replica_set.sh
entrypoint:
- /initiate_replica_set.sh
Run Code Online (Sandbox Code Playgroud)
initiate_replica_set.sh 文件:
#!/bin/bash
echo "Starting replica set initialize" …Run Code Online (Sandbox Code Playgroud) 我知道send接受带有参数的字符串或符号,而instance_eval接受字符串或块,并且给定接收器它们的区别可能很明显.
我的问题是下面的例子中"引擎盖下 "的区别是什么?
1234.send 'to_s' # '1234'
1234.instance_eval 'to_s' # '1234'
Run Code Online (Sandbox Code Playgroud) 我想找到使用正则表达式连续字母对的单词.我知道只有一对连续的动物园(oo),拼图(zz),安排(rr),它可以实现'(\w){2}'.但是怎么样
编辑:
'(\w){2}' 实际上是错的,它找到任何两个字母而不是双字母对.我很难弄清楚下面的代码是如何工作的:
import random
for i in range(0, 100):
if not i % 15:
random.seed(1178741599)
print [i+1, "Fizz", "Buzz", "FizzBuzz"][random.randint(0,3)]
Run Code Online (Sandbox Code Playgroud)
我明白,当i被整除时15,random将使用相同的seed,因此randint(0, 3)将始终返回相同的索引,但当我尝试
for i in range(100):
random.seed(1178741599)
print random.randint(0,3) #always print 0
Run Code Online (Sandbox Code Playgroud)
上面的代码总是打印0,不应该是(这是正确的行为,并3(作为"FizzBuzz"列表中的索引[i+1, "Fizz", "Buzz", "FizzBuzz"]?i+1在列表中对应).
又是怎么回事的时候i是整除3或5?
种子的魔力是1178741599什么?
编辑:正如jonrsharpe所指出的,fizzbuzz代码仅适用于python 2.x.
python ×2
docker ×1
fizzbuzz ×1
mongodb ×1
random-seed ×1
regex ×1
replicaset ×1
ruby ×1
send ×1