inheritance and private attributes

KN vald at dead.art.pl
Wed Apr 21 14:56:25 EDT 2004


I've run into such problem:

I have something like this:

class A(object):
	def __init__(self):
		self.__value = None

class B(A):
	def test(self):
		if self.__value:
			print "Ok."
		else:
			print "Empty."

>>> b = B()
>>> b.test()
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "<stdin>", line 3, in test
AttributeError: 'B' object has no attribute '_B__value'

Why I have no access to private attribute from a class that
inherits other class? I just want to have access to the same
private variables but also to extend its functionality by
adding a method that operates on those private attributes and
I'm unable to do so. 

Is this normal behaviour? What should I do if I want to 
override method and use private attribute, or just add
some other method which changes this attribute?

/K




More information about the Python-list mailing list