Re: python: what's with the underscores?

  • From: Tyler Littlefield <tyler@xxxxxxxxxxxxx>
  • To: programmingblind@xxxxxxxxxxxxx
  • Date: Sun, 27 Dec 2009 19:15:48 -0700

I'm not familiar with this, but I can sort of do some explaining if you need, 
too.
On Dec 27, 2009, at 6:49 PM, Alex Hall wrote:

> I was trying to avoid going here since it may not work and will take some 
> time, but are you at all interested in a shortish session on Skype? I think 
> being able to look at the code and discuss it directly would help a lot. If 
> you do not want to, I understand and that is fine, too, but I think it would 
> be better than emailing back and forth.
> 
> 
> Have a great day,
> Alex
> New email address: mehgcap@xxxxxxxxx
> ----- Original Message ----- From: "Haden Pike" <haden.pike@xxxxxxxxx>
> To: <programmingblind@xxxxxxxxxxxxx>
> Sent: Sunday, December 27, 2009 20:44
> Subject: Re: python: what's with the underscores?
> 
> 
>> On 12/27/2009 8:33 PM, Alex Hall wrote:
>>> Okay then, here is something I have taken from Qwitter's statuses.py file 
>>> (src\buffers\facebook). I have tried to insert my questions into it as 
>>> comments, and formatting will probably be lost.
>>> 
>>> #what happened to the 'self' thing, and why pass it a Facebook object?
>> 
>>> The facebook object is defined in src\buffer\facebook\main.py. It is passed 
>>> to this class because it can handle what to do with the information it 
>>> receives in RetrieveNewPosts.
>> 
>>> class statuses(facebook):
>>> 
>>> #why no colon here?  My error. There should be.
>>> def RetrieveNewPosts(self)
>>> #just an empty list, fine
>>> statuses = []
>>> try:
>>> #doesn't this need some sort of arg, like the UID or the app/user/session 
>>> keys? Where are all those? What does the session class do here? How did 
>>> Facebook become an object under sessions?  The facebook api_key and 
>>> secret_key are passed to facebook in src\session\facebook\main.py in the 
>>> FinishInitialization function, therefore we don't need them here. The 
>>> self.session tells the function to look in the current session for the var 
>>> called facebook which already has all the necessary parameters for this 
>>> call..
>>> statuses = self.session.Facebook.statuses.get()
>>> except:
>>>  logging.exception("Unable to retrieve current statuses.")
>>>  return
>>> return statuses
>>> Hope this helps, and if not, shout at me until it does.
>> Haden
>> 
>> 
>>> Have a great day,
>>> Alex
>>> New email address: mehgcap@xxxxxxxxx
>>> ----- Original Message ----- From: "Haden Pike" <haden.pike@xxxxxxxxx>
>>> To: <programmingblind@xxxxxxxxxxxxx>
>>> Sent: Sunday, December 27, 2009 20:27
>>> Subject: Re: python: what's with the underscores?
>>> 
>>> 
>>>> That was a mistake, but I'm glad to see that you sort of understood it if 
>>>> you caught that. It should be:
>>>> 
>>>> def Add(self, x, y):
>>>> 
>>>> Haden
>>>> 
>>>> On 12/27/2009 6:20 PM, Alex Hall wrote:
>>>>> In the add function, why did you only declare x and y as params, why not 
>>>>> self as well?
>>>>> 
>>>>> 
>>>>> Have a great day,
>>>>> Alex
>>>>> New email address: mehgcap@xxxxxxxxx
>>>>> ----- Original Message ----- From: "Haden Pike" <haden.pike@xxxxxxxxx>
>>>>> To: <programmingblind@xxxxxxxxxxxxx>
>>>>> Sent: Sunday, December 27, 2009 18:16
>>>>> Subject: Re: python: what's with the underscores?
>>>>> 
>>>>> 
>>>>>> When a function is part of a class, you pass self to it as a parameter. 
>>>>>> Example:
>>>>>> 
>>>>>> class Myclass():
>>>>>> 
>>>>>> def function(self):
>>>>>> 
>>>>>> To call variables that can be used throughout the class in any functions 
>>>>>> in that class, I would put self before the variable name. Example:
>>>>>> 
>>>>>> class Myclass():
>>>>>> 
>>>>>> def function(self):
>>>>>>  self.var = "Hello world!"
>>>>>> 
>>>>>> def AnotherFunction(self):
>>>>>>  print("The variable value is: %s." % self.var)
>>>>>> 
>>>>>> To call a function from another function, and there both in the same 
>>>>>> class, I use self. Example:
>>>>>> 
>>>>>> class Myclass():
>>>>>> 
>>>>>> def Add(x, y):
>>>>>> return (x+y)
>>>>>> 
>>>>>> def TestAddFunction(self):
>>>>>>  x = 4
>>>>>>  y = 3
>>>>>>  print (self.Add(x, y))
>>>>>> 
>>>>>> If I want the function to not be a part of the class I would do:
>>>>>> 
>>>>>> def function():
>>>>>> 
>>>>>> Now to answer your questions about underscores, Edward already answered 
>>>>>> part of it. When you create a directory in your python source files, 
>>>>>> these are called packages. To let python know that it is a package, you 
>>>>>> must put an __init__.py file in that directory. This can be a blank file 
>>>>>> or tell python what to automatically import when that package is 
>>>>>> imported in another file.
>>>>>> 
>>>>>> HTH
>>>>>> Haden
>>>>>> 
>>>>>> On 12/27/2009 5:13 PM, Alex Hall wrote:
>>>>>>> Okay, but (A) I did not think Python had constructor methods and (B) 
>>>>>>> why do I always see methodName(self): like in your example?
>>>>>>> 
>>>>>>> 
>>>>>>> Have a great day,
>>>>>>> Alex
>>>>>>> New email address: mehgcap@xxxxxxxxx
>>>>>>> ----- Original Message ----- From: "edward" <personal.edward@xxxxxxxxx>
>>>>>>> To: <programmingblind@xxxxxxxxxxxxx>
>>>>>>> Sent: Sunday, December 27, 2009 17:11
>>>>>>> Subject: RE: python: what's with the underscores?
>>>>>>> 
>>>>>>> 
>>>>>>>> Two underscores signify either a constructor method or a built in 
>>>>>>>> method I
>>>>>>>> think.  Like the str method.  If you want to define string formatting 
>>>>>>>> with
>>>>>>>> your class its defined by two underscores before and after the method 
>>>>>>>> name.
>>>>>>>> example __str__(self):
>>>>>>>> 
>>>>>>>> 
>>>>>>>> -----Original Message-----
>>>>>>>> From: programmingblind-bounce@xxxxxxxxxxxxx
>>>>>>>> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Alex Hall
>>>>>>>> Sent: Sunday, December 27, 2009 3:58 PM
>>>>>>>> To: Blind Programming List
>>>>>>>> Subject: python: what's with the underscores?
>>>>>>>> 
>>>>>>>> In python, why are some method names surrounded by two underscores? 
>>>>>>>> Even
>>>>>>>> some filenames have these two underscores, though I imagine that is 
>>>>>>>> more of
>>>>>>>> a convention than anything else. What do the underscores mean, if 
>>>>>>>> anything?
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Have a great day,
>>>>>>>> Alex
>>>>>>>> New email address: mehgcap@xxxxxxxxx
>>>>>>>> 
>>>>>>>> __________
>>>>>>>> View the list's information and change your settings at
>>>>>>>> //www.freelists.org/list/programmingblind
>>>>>>>> 
>>>>>>>> __________
>>>>>>>> View the list's information and change your settings at
>>>>>>>> //www.freelists.org/list/programmingblind
>>>>>>>> 
>>>>>>> 
>>>>>>> __________
>>>>>>> View the list's information and change your settings at 
>>>>>>> //www.freelists.org/list/programmingblind
>>>>>>> 
>>>>>> 
>>>>>> __________
>>>>>> View the list's information and change your settings at 
>>>>>> //www.freelists.org/list/programmingblind
>>>>>> 
>>>>> 
>>>>> __________
>>>>> View the list's information and change your settings at 
>>>>> //www.freelists.org/list/programmingblind
>>>>> 
>>>> 
>>>> __________
>>>> View the list's information and change your settings at 
>>>> //www.freelists.org/list/programmingblind
>>>> 
>>> 
>>> __________
>>> View the list's information and change your settings at 
>>> //www.freelists.org/list/programmingblind
>>> 
>> 
>> __________
>> View the list's information and change your settings at 
>> //www.freelists.org/list/programmingblind
> 
> __________
> View the list's information and change your settings at 
> //www.freelists.org/list/programmingblind

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

Other related posts: