Question on class member in python
Johnny Lee
johnnyandfiona at hotmail.com
Tue Oct 18 01:24:01 EDT 2005
Peter Otten 写道:
> Johnny Lee wrote:
>
> > Class A:
> > def __init__(self):
> > self.member = 1
> >
> > def getMember(self):
> > return self.member
> >
> > a = A()
> >
> > So, is there any difference between a.member and a.getMember? thanks
> > for your help. :)
>
> Yes. accessor methods for simple attributes are a Javaism that should be
> avoided in Python. You can always turn an attribute into a property if the
> need arises to do some calculations behind the scene
>
> >>> class A(object):
> ... def getMember(self):
> ... return self.a * self.b
> ... member = property(getMember)
> ... def __init__(self):
> ... self.a = self.b = 42
> ...
> >>> A().member
> 1764
>
> I. e. you are not trapped once you expose a simple attribute.
>
> Peter
Thanks for your help, maybe I should learn how to turn an attibute into
a property first.
More information about the Python-list
mailing list