On 6 okt, 15:25, Peter Otten <__pete...@web.de> wrote: > Nethirlon . wrote: > > On 6 okt, 11:53, Peter Otten <__pete...@web.de> wrote: > >> Sebastiaan de Haan wrote: > >> > Thank you Chris, > > >> > I'll try and find the attribute in the code. That was my conclusion > >> > aswell... The original author must have defined it somewhere... > > >> Don't forget to check whether the object's class (or any of its bases) > >> has a __getattr__() or __getattribute__() method. > > >> >>> class A(object): > > >> ... def __getattr__(self, name): > >> ... return 42 > >> ...>>> a = A() > >> >>> a.as > > >> File "<stdin>", line 1 > >> a.as > >> ^ > >> SyntaxError: invalid syntax > > >> Note tha you can still access such an attribute using getattr() > > >> >>> getattr(a, "as") > > >> 42 > > >> Peter > > > Thank you Peter, > > > While searching the document I found the following code: > > > class Open(dpkt.Packet): > > __hdr__ = ( > > ('v', 'B', 4), > > ('as', 'H', 0), > > ('holdtime', 'H', 0), > > ('identifier', 'I', 0), > > ('param_len', 'B', 0) > > ) > > > So, I am new at programming with Python, but doing my best to grasp > > the concept here. From what I am understanding is that the __hdr__ is > > something that the original programmer cameup with for him self. I am > > just curious as to weather the "as" in this piece of code is the one I > > am searching for. > > Side note: if the code you have questions about is publicly available it's > always a good idea to give the url. I am assuming that you are referring to > an older version to this beast: > > http://code.google.com/p/dpkt/source/browse/trunk/dpkt/bgp.py > > Here's where your problem was fixed/adjusted to newer Python > versions:http://code.google.com/p/dpkt/source/detail?r=51 > > The __hdr__ is indeed an invention of the author of the package, and is feed > to the metaclass* of dpkt.Packet. The metaclass uses it to create __slots__ > that are filled dynamically in Packet.__init__(). > > I recommend that you read the docstring of the Packet class > > http://code.google.com/p/dpkt/source/browse/trunk/dpkt/dpkt.py > > but only bother about the implementation if you cannot avoid it. > You can always have a second look after you have gained some Python > experience. > > Peter > > (*) Every class in Python is an instance of its metaclass, i. e. the > relation between metaclass and class is the same as between class and > instance. Custom metaclasses are a powerful feature, but tend to make Python > code harder to grasp.
Peter, Thank you very much, I did not know that the code was available online, and also did not know that the author updated it online. The package I was using came from the openSuse python repository, given to me by one of the maintainers of that repository. I am having a hard time understanding the concept of classes, so I think that I should focus on that first, before continueing to try and contribute. Thank you very much for your help! -- http://mail.python.org/mailman/listinfo/python-list