views:

66

answers:

2

We just started learning about class inheritance and attribute lookup in python. I have a question about the following code:

class a : n = 1
class b : n = 2
class c : n = 3
class d (a,b) : pass
class e (d,c) : pass

I know that e.n would equal 1 due to the nature of attribute lookup procedure (depth first search). However, how would I access, say, class c's n from class e? I've tried e.c.n, but that gives me an error. Can someone tell me what I'm doing wrong? Thanks in advance!

+1  A: 

You can't get there from here. Class attributes are replaced. Use the class reference directly (c.n).

Ignacio Vazquez-Abrams
A: 
>>> e.__bases__[1].n
3
gnibbler
Thanks, worked like a charm!
Alice