perche il seguente esempioCome usare sadd con più elementi in Redis usando l'API Python?
>>import redis
>>redis_db_url = '127.0.0.1'
>>r = redis.StrictRedis(host = redis_db_url,port = 6379,db = 0)
>>r.sadd('a',1)
>>r.sadd('a',2)
>>r.sadd('a',3)
>>r.smembers('a')
[+] uscita: set ([ '1', '3', '2'])
>>r.sadd('a',set([3,4]))
>>r.smembers('a')
[+] uscita: set ([ '1', '3', '2', 'impostare ([3, 4])'])
>>r.sadd('a',[3,4])
>>r.smember('a')
[+] set ([ '1', '[3, 4]', ' 3 ',' 2 ',' set ([3, 4]) '])
Secondo t egli documentazione ufficiale in https://redis-py.readthedocs.org/en/latest/ Sadd (nome, * valori) aggiungere valore (s) per impostare nome
Quindi si tratta di un bug o mi manca qualcosa?
potrei sbagliarmi, ma io non credo che si deve cast come un 'set' prima di disimballare – Seaux
No, non lo fai, ma stavo seguendo l'esempio nella domanda dell'autore. In questo caso la sintassi inline è solo una scorciatoia per indicare che è possibile farlo con un set arbitrario (o in effetti, un iterabile arbitrario). – nneonneo
E in realtà, su qualsiasi recente Python puoi semplicemente fare '* {3, 4}' che è la sintassi nativa per i set letterali, eliminando del tutto il "cast". – nneonneo