._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
вместо имени двойного подчеркивания вы можете получить доступ к скрытое значение
Это стандарт . Я считаю, что спецификация W3C очень полезна и читаема.
application / x-www-form-urlencoded ...
Элемент управления имена / значения перечислены в том порядке, в котором они отображаются в документе.
multipart / form-data ...
Части отправляются обработчику в том же порядке, что и соответствующий элементы управления отображаются в потоке документа.
blockquote>Я еще не столкнулся с браузером, который не соответствует этому соглашению, поэтому я бы сказал, что вы вполне можете его использовать.
Как говорится, моя семантическая кость немного неудобна, полагаясь на это соглашение. Если упорядочение имеет решающее значение, я бы вместо этого использовал:
<form> <input name="param[0]" /> <input name="param[1]" /> <input name="param[2]" /> </form>