+ \ оператор в Python - PullRequest
3 голосов
/ 22 июня 2010

Что делает оператор + \ в Python?

Я наткнулся на этот фрагмент кода -

rows=urllib2.urlopen('http://ichart.finance.yahoo.com/table.csv?'+\
's=%s&d=11&e=26&f=2006&g=d&a=3&b=12&c=1996'%t +\
'&ignore=.csv').readlines( )

и не могу найти никаких ссылок, объясняющих это.

Ответы [ 4 ]

18 голосов
/ 22 июня 2010

+ является дополнением.\ в конце строки продолжает текущий оператор или выражение на следующей строке.

11 голосов
/ 22 июня 2010

NB. В этом случае продолжение \ не нужно, так как выражение находится в скобках.Python достаточно умен, чтобы знать, что строка продолжается до тех пор, пока все скобки, скобки и скобки не будут сбалансированы.

Ненужные символы продолжения - моя незначительная ошибка, и я удаляю их при каждой возможности.Они загромождают код, вводят в заблуждение новичков, которые думают, что они какой-то оператор, и их можно незаметно прервать, если после них случайно поставить пробел.

Также не нужен первый символ + - Python автоматически объединяет строковые литералы.

Я бы также переместил оператор% в конец выражения и исключил бы вторую +, чтобы строку можно было переписать как:

rows=urllib2.urlopen('http://ichart.finance.yahoo.com/table.csv?'
                     's=%s&d=11&e=26&f=2006&g=d&a=3&b=12&c=1996' 
                     '&ignore=.csv' % t).readlines( )
7 голосов
/ 22 июня 2010

Это не оператор, это просто оператор +, за которым следует продолжение строки \

1 голос
/ 22 июня 2010

Вы можете переписать свой код следующим образом:

rows=urllib2.urlopen('http://ichart.finance.yahoo.com/table.csv?'
                     's=%s&d=11&e=26&f=2006&g=d&a=3&b=12&c=1996'
                     '&ignore=.csv'%t).readlines()

Парсер объединяет строки в одну, поэтому вы не тратите время, бесполезно добавляя строки во время выполнения

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