Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #76657

Re: what is the difference between name and _name?

Date 2014-08-20 19:41 +0800
From luofeiyu <elearn2014@gmail.com>
Subject Re: what is the difference between name and _name?
References <mailman.13190.1408519045.18130.python-list@python.org> <53f46100$0$29884$c3e8da3$5496439d@news.astraweb.com>
Newsgroups comp.lang.python
Message-ID <mailman.13201.1408534898.18130.python-list@python.org> (permalink)

Show all headers | View raw


So in this example:
>> class Person(object):
>>       def __init__(self, name):
>>           self._name = name
>         [...]
>>       name = property(getName, setName, delName, "name property docs")
>
>
> (3) name is the public attribute that other classes or functions are
> permitted to use.
>
>
> problem 1:  there is no self.name =  something in the defination ,why i can get bob.name?
>
>
class Person(object):
     def __init__(self, name):
         self._name = name
     def getName(self):
         print('fetch....')
         return self._name
     def setName(self, value):
         print('change...')
         self._name = value
     def delName(self):
         print('remove....')
         del self._name
     name = property(getName, setName, delName, "name property docs")

 >>> bob=Person("dear bob")
 >>> bob._name  # there is a defination in class Person ,self._name = 
name ,when we initial it ,we can get bob._name
'dear bob'
 >>> bob.name  #there is no defination in class Person ,self.name=name 
,why we can get the value of bob.name?
fetch....
'dear bob'


problem 2: what is the meaning of

name = property(getName, setName, delName, "name property docs")    ?

why i can not write  _name = property(getName, setName, delName, "name property docs") ?


  class Person(object):

     def __init__(self, name):

         self._name = name

     def getName(self):

         print('fetch....')

         return self._name

     def setName(self, value):

         print('change...')

         self._name = value

     def delName(self):

         print('remove....')

         del self._name

     _name = property(getName, setName, delName, "name property docs")

bob=Person("dear bob")

I got error from the codes:

   File "<stdin>", line 9, in setName
   File "<stdin>", line 8, in setName
RuntimeError: maximum recursion depth exceeded while calling a Python object

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

what is the difference between name and _name? luofeiyu <elearn2014@gmail.com> - 2014-08-20 15:16 +0800
  Re: what is the difference between name and _name? Steven D'Aprano <steve@pearwood.info> - 2014-08-20 08:49 +0000
    Re: what is the difference between name and _name? luofeiyu <elearn2014@gmail.com> - 2014-08-20 19:41 +0800
      Re: what is the difference between name and _name? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-08-21 01:26 +1000
        Re: what is the difference between name and _name? luofeiyu <elearn2014@gmail.com> - 2014-08-21 10:20 +0800
        Re: what is the difference between name and _name? Chris Angelico <rosuav@gmail.com> - 2014-08-21 13:10 +1000
        Re: what is the difference between name and _name? luofeiyu <elearn2014@gmail.com> - 2014-08-22 14:37 +0800
    Re: what is the difference between name and _name? "Frank Millman" <frank@chagford.com> - 2014-08-20 14:18 +0200

csiph-web