[Twisted-web] HTTPChannel class attributes
exarkun at twistedmatrix.com
exarkun at twistedmatrix.com
Sat Oct 6 09:30:08 EDT 2012
On 06:46 am, ardesai at yahoo.com wrote:
>Should http.py :: HTTPChannel.__first_line be an instance attribute
>instead of a class attribute?
It doesn't matter. It "becomes" an "instance attribute" as soon as it
is assigned a value. This is probably covered in the Python
documentation somewhere, but I can't find it.
>
>I have a custom scenario where I sub-classed HTTPChannel for my sub-
>classed HTTPFactory. In the DerivedHTTPChannel class I overrode the
>allContentReceived() method.
The problem is that you cannot set __first_line to 1 in a subclass named
`DerivedHTTPChannel`. __first_line is a mangled attribute. See 9.6 on:
http://docs.python.org/tutorial/classes.html
Additionally, anything starting with "_" is private and if you use it,
your code is more likely to be broken by a future release of Twisted.
See http://twistedmatrix.com/trac/wiki/CompatibilityPolicy
What are you trying to accomplish with your HTTPChannel subclass?
Jean-Paul
>I recently enabled persistent connections, but setting
>self.__first_line = 1 in the DerivedHTTPChannel was ineffective, and
>the first line of the next request threw an exception when it got
>parsed as an http header. Similar question "probably" apply to other
>class attributes.
>
>Should such attributes be instance attributes instead of class
>attributes? Or is it anticipated that any class who derives from
>HTTPChannel should override almost all the methods of the base class?
>
>Thanks,
>Arun
More information about the Twisted-web
mailing list