access private field in python 2.4

O

Ola Natvig

Hello,
I'm new to python,
How can I access private field in python.

thanks

In python there realy are not private fields. There are those fields
that you start with a double underline (__) theese are translated to

_<classname>__<attributename>

Withouth the < and > markers, but there are not good practice to access
theese through that name.
 
A

ajikoe

Hello, if we want to access the private member of object we use the
classname, it doesn't make sense. For example:
I have class A:

class A:
def __init__(self, i):
self.__i = i;
pass

__i = 0

a = A(22);
b = A(33);

How can I get field i in object a and how can I get field i in object
b?
Beside I try to call:
print _A__i #fail this create error

Please help.
Pujo Aji
 
S

Steven Bethard

Hello, if we want to access the private member of object we use the
classname, it doesn't make sense. For example:
I have class A:

class A:
def __init__(self, i):
self.__i = i;
pass

__i = 0

a = A(22);
b = A(33);

How can I get field i in object a and how can I get field i in object
b?

py> class A:
.... def __init__(self, i):
.... self.__i = i;
....
py> a = A(22)
py> a._A__i
22
Beside I try to call:
print _A__i #fail this create error

Looks like you're confused about the difference between instances and
modules. The code:
print _A__i
asks Python to print the attribute _A__i of the given module. But you
want the attribute _A__i of the instance 'a'. As you can see in my
code, if you want the attribute of the instance, you need to specify it
as such.

As an additional reminder, you generally *shouldn't* be accessing
"private" variables of a class. There's a reason they're declared
private. ;)

Steve
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top