@rand007, разница в том, что эти операторы делают разные вещи:
== - оператор сравнения
in - оператор поиска элемента в коллекции, в случае строк это "поиск подстроки в строке"
или вы меня троллите?
Разберем ваш пример:
if len(sys.argv) > 1 and sys.argv[1] in arguments:
find_file()
command = sys.argv[1]
if command in 'auth':
auth()
elif command in 'upload':
abspath = os.getcwd().split('/')[-1].lower()
file_name = "".join([abspath, '.zip'])
get_archive(file_name, '.')
upload_file(file_name)
elif command in 'download':
file_name = raw_input('Enter your environment name (example: myenv.zip): ').lower()
download_file(file_name)
extract_archive(file_name)
зачем здесь поиск подстроки? У вас может быть значение command как "pload"? Объясните мне смысл, а то я не пойму
Спустя 66 сек.
Замеряем скорость, если интересно:
In [1]: timeit 'upload' == 'upload'
10000000 loops, best of 3: 53.5 ns per loop
In [2]: timeit 'upload' in 'upload'
10000000 loops, best of 3: 73.7 ns per loop
https://smappi.org/ - платформа по созданию API на все случаи жизни
@phpdude, смутило, проект мне не интересен, но я решил посмотреть код. Мне интересно почему люди используют иначе что-то, вдруг я прозрею и перениму что-то
Причем это делается один раз. Код должен быть в системе контроля версий, это не только мое имхо. Не вижу тут чего-то сложного совершенно, можно конечно из этого сделать алиас в bash или осилить Fabric, чтобы из трех простых строчек сделать одну.
https://smappi.org/ - платформа по созданию API на все случаи жизни
@rand007, вопрос в том, зачем использовать конструкции для посика подстрок, там где нужно использовать сравнение?
Спустя 150 сек.
Я бы понял, если бы in вы использовали в случае если command может принимать не точное сопоставление, а некоторую часть строки, например для "upload" это было бы "up", "upl", "load" и т.д., но в вашем коде я этого не прослеживаю
https://smappi.org/ - платформа по созданию API на все случаи жизни