Входы всегда POSTed в том порядке, в котором они существуют в DOM [duplicate]

._variable является полуприватым и подразумевается только для соглашения

.__variable часто неправильно считается суперприватом, в то время как фактическое значение просто для предотвращения случайного доступа [1]

.__variable__ обычно зарезервирован для встроенных методов или переменных

Вы можете получить доступ к .__mangled переменным, если вы отчаянно хотите. Двойное подчеркивание просто намещает или переименовывает переменную в нечто вроде instance._className__mangled

Пример:

class Test(object):
    def __init__(self):
        self.__a = 'a'
        self._b = 'b'

>>> t = Test()
>>> t._b
'b'

t._b доступен, поскольку он скрыт только по соглашению

>>> t.__a
Traceback (most recent call last):
  File "", line 1, in 
AttributeError: 'Test' object has no attribute '__a'

t .__ a не найден потому, что он больше не существует из-за namemangling

>>> t._Test__a
'a'

. При доступе к instance._className__variable вместо имени двойного подчеркивания вы можете получить доступ к скрытое значение

4
задан nicholaides 25 June 2012 в 05:27
поделиться

1 ответ

Это стандарт . Я считаю, что спецификация W3C очень полезна и читаема.

application / x-www-form-urlencoded ...

Элемент управления имена / значения перечислены в том порядке, в котором они отображаются в документе.

multipart / form-data ...

Части отправляются обработчику в том же порядке, что и соответствующий элементы управления отображаются в потоке документа.

Я еще не столкнулся с браузером, который не соответствует этому соглашению, поэтому я бы сказал, что вы вполне можете его использовать.

Как говорится, моя семантическая кость немного неудобна, полагаясь на это соглашение. Если упорядочение имеет решающее значение, я бы вместо этого использовал:

<form>
  <input name="param[0]" />
  <input name="param[1]" />
  <input name="param[2]" />
</form>
11
ответ дан Nick 20 August 2018 в 18:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: