Так что это несколько неуловимо, но вызываемые псевдонимы (которые являются одним типом лямбд), имеют несколько различных типов объектов, которые они могут возвращать. Одним из которых является кортеж (stdout, stderr, returncode)
.
Метод str.readlines()
возвращает список, который в данном случае равен ['pippo\n', 'pluto\n', 'minnie\n', 'topolino\n']
. Итак,
stdout = "pippo\n"
stderr = "pluto\n"
returncode
никогда не печатается, но бывает "minnie\n"
здесь
Это, вероятно, не предполагаемое поведение, и именно поэтому первый пример работает.