Help with 'self' and 'set_usage'

L

L O'Shea

Hi all,
I'm interning and have been given the job of extending a program that has been written by someone else. I've never used Python before so it's a bit ofa struggle but I've got to say I'm loving the language so far.

In on of the scripts there is

def set_usage(self,s):
self.usage_str = s

Could anyone shed some light on this? I can't find mention of this anywherein any Python documentation or anywhere else in the code where usage_str might be defined. Can you just create variables in that object by writing self.name = "david" self.hobby = "fishing"??

If this is any help it is used later in the program (or in other scripts) like

prog.set_usage("""%prog <command> [options] ....""")

Thanks for your help, I have spent a good while googling python docs, code snippets and reading through a Python book I have on my desk to no avail.

Cheers in advance.
 
E

Ethan Furman

Hi all,
Howdy!

I'm interning and have been given the job of extending a program that has been written by someone else. I've never used Python before so it's a bit of a struggle but I've got to say I'm loving the language so far.

Excellent way to start a question! :)

In one of the scripts there is

def set_usage(self,s):
self.usage_str = s

Careful of whitespace when posting (I fixed that one for you).

Can you just create variables in that object by writing self.name = "david" self.hobby = "fishing"??

Yup, you sure can.
 
A

Antoon Pardon

Op 09-07-13 19:03, L O'Shea schreef:
Hi all,
I'm interning and have been given the job of extending a program that
has been written by someone else. I've never used Python before so it's
a bit of a struggle but I've got to say I'm loving the language so far.

In on of the scripts there is

def set_usage(self,s):
self.usage_str = s

Could anyone shed some light on this? I can't find mention of this
anywhere in any Python documentation or anywhere else in the code
where usage_str might be defined. Can you just create variables in
that object by writing self.name = "david" self.hobby = "fishing"??

Yes you can.
 
A

Andrew Berg

Could anyone shed some light on this? I can't find mention of this anywhere in any Python documentation or anywhere else in the code where usage_str might be defined.
In Python, you don't declare or initialize variables before using them. In the example you gave, that is where usage_str is defined. You
simply assign an object to a name or attribute (which may or may not have existed previously). You can then change it to anything else you
want; Python is dynamically typed, so the object you assign to it can be of any type.

Note: a class with __slots__ defined is the exception to this, but that's a bit of an advanced topic.

BTW, you can play with objects in the interactive interpreter. It's a great way to quickly learn how certain things work.
 
L

L O'Shea

Hi all,

I'm interning and have been given the job of extending a program that hasbeen written by someone else. I've never used Python before so it's a bit of a struggle but I've got to say I'm loving the language so far.



In on of the scripts there is



def set_usage(self,s):

self.usage_str = s



Could anyone shed some light on this? I can't find mention of this anywhere in any Python documentation or anywhere else in the code where usage_strmight be defined. Can you just create variables in that object by writing self.name = "david" self.hobby = "fishing"??



If this is any help it is used later in the program (or in other scripts)like



prog.set_usage("""%prog <command> [options] ....""")



Thanks for your help, I have spent a good while googling python docs, code snippets and reading through a Python book I have on my desk to no avail.



Cheers in advance.

Thanks for the advice everyone that was really helpful! Gotta love the USA/UK time difference I can post a question here at the end of the day and it be answered by morning - Not that it took any of you very long!
Stay tuned for more Python questions :)
 

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

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,905
Latest member
Kristy_Poole

Latest Threads

Top