Форматирование длинного списка до 80 столбцов - PullRequest
1 голос
/ 23 декабря 2011
  try:
    for key in copy['KnownNetworks'].keys():
      if copy['KnownNetworks'][key]['SSID_STR'] == networkDict['name']:
        networkDict['uuid'] = copy['KnownNetworks'][key]['Unique Password ID']
        print 'Found existing reference to wireless password uuid: %s' % networkDict['uuid']
        found = True
  except:
    print 'Key KnownNetworks not found'
  # Clean up top level key

  keychain = '/Library/Keychains/System.keychain'
  arguments = [security,"add-generic-password",'-a',networkDict['name'],'-l',networkDict['name'],'-D','Airport network password','-s',networkDict['uuid'],'-w',networkDict['pass'],'-T','group://Aiport','-T','/System/Library/CoreServices/SystemUIServer.app','-T','/Applications/System Preferences.app','-T','/usr/libexec/airportd',keychain]
  addKeychainPassword(arguments)
  users = '/var/db/dslocal/nodes/Default/users'
  listing = os.listdir(users)
  for plist in listing:

У меня есть вопрос форматирования, приведенный выше пример, есть ли лучший способ отформатировать объявление списка аргументов? Это вызов подпроцесса, поэтому мне нужно, чтобы он был списком, но я думаю, я мог бы преобразовать его в словарь и затем обратно в список. Моя главная цель заключается в том, чтобы я соответствовал стандарту 80 col на большинстве сценариев Unix. Любые методы, которые вы хотели бы поделиться с точки зрения чистого кода?

1 Ответ

8 голосов
/ 23 декабря 2011

Для строк более 80 столбцов вы можете разбить их на несколько строк.Здесь все просто, поскольку у вас есть список.

arguments = [security,
             'add-generic-password',
             '-a', networkDict['name'],
             '-l', networkDict['name'],
             '-D', 'Airport network password',
             '-s', networkDict['uuid'],
             '-w', networkDict['pass'],
             '-T', 'group://Aiport',
             '-T', '/System/Library/CoreServices/SystemUIServer.app',
             '-T', '/Applications/System Preferences.app',
             '-T', '/usr/libexec/airportd',
             keychain]

Здесь вы не только получите теплый жар удовлетворения от выполнения руководства по стилю Python, но и на 1004 * намного легчесмотрите аргументы, передаваемые, когда код отформатирован таким образом.

Официальное руководство по макету Python: PEP-8 .Есть и другие примеры разбиения длинных строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...