Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > how to pass attribute name via sys.argv

Reply
Thread Tools

how to pass attribute name via sys.argv

 
 
Felix Hebeler
Guest
Posts: n/a
 
      01-27-2005
Hi all,
I am doing some Python scripting for a while, but I'm not too deep into
it yet. So I have a problem I can't solve.

I need to call an object attribute:

value = object.attrName[0]

the problem is, that the attribute name can only be specified at runtime.

So what I have is something like

>>> attrName = sys.argv[1]
>>> attrName

'cellsize'

and I need to pass it on so I can call

value = object.cellsize[0]


Can this be done using Python?

Thanks for any hints

Cheers
Felix
 
Reply With Quote
 
 
 
 
Wolfram Kraus
Guest
Posts: n/a
 
      01-27-2005
Felix Hebeler wrote:
> Hi all, I am doing some Python scripting for a while, but I'm not too
> deep into it yet. So I have a problem I can't solve.
>
> I need to call an object attribute:
>
> value = object.attrName[0]
>
> the problem is, that the attribute name can only be specified at
> runtime.
>
> So what I have is something like
>
>>>> attrName = sys.argv[1] attrName

> 'cellsize'
>
> and I need to pass it on so I can call
>
> value = object.cellsize[0]

Use getattr:
value = getattr(object, attrName)[0]

>
> Can this be done using Python?
>
> Thanks for any hints
>
> Cheers Felix


HTH,
Wolfram
 
Reply With Quote
 
 
 
 
Gilles Lenfant
Guest
Posts: n/a
 
      01-27-2005
Felix Hebeler a écrit :
> Hi all,
> I am doing some Python scripting for a while, but I'm not too deep into
> it yet. So I have a problem I can't solve.
>
> I need to call an object attribute:
>
> value = object.attrName[0]
>
> the problem is, that the attribute name can only be specified at runtime.
>
> So what I have is something like
>
> >>> attrName = sys.argv[1]
> >>> attrName

> 'cellsize'
>
> and I need to pass it on so I can call
>
> value = object.cellsize[0]
>
>
> Can this be done using Python?
>
> Thanks for any hints
>
> Cheers
> Felix


The builtin "setattr" is your friend.
"object" is now a reserved (builtin) name, use "objekt" instead.

class Foo(object):
pass
objekt = Foo()
attrName = sys.argv[1]
values = ['foo', 'bar', 'whatever']
setattr(objekt, attrName, values)

HTH

--
Gilles
 
Reply With Quote
 
Felix Hebeler
Guest
Posts: n/a
 
      01-27-2005
Wolfram Kraus wrote:
> Felix Hebeler wrote:
>

<snip>
>>
>> I need to call an object attribute:
>>
>> value = object.attrName[0]
>>

<snip>
>
> Use getattr:
> value = getattr(object, attrName)[0]
>


>
>
> HTH,
> Wolfram


Thanks so much!
Had I known earlier.
Looks so easy...

Now, why did I not find this in the online tutorial, the reference
manual, or google?
Not that I didn't try... I mean, I would find 'getattr' if I searched,
but if you don't know what you're looking for..

I find the reference manual extremely (== too) compact to look things up.
A couple of colleages and me agreed that it is much more difficult to
find solutions and _useful_ tips for Python than e.g. for Java (where
there's Javadoc for example). The syntax doc in the reference manual to
me looks like computer linguists might understand, but unfortunately not
me. And Python code IS really easy to read, I agree, but what if I can't
find out how to write it?
I'd appreciate any link to online resources or recommendations for books
(english/german)!

Chances are I'm a silly/lazy/deprived/stupid bugger, but I try to think
there's still hope!

again, thank you so much for your quick response (thanks Gilles Lenfant
too!), I really DO like the Python community

Cheers
Felix
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: How include a large array? Edward A. Falk C Programming 1 04-04-2013 08:07 PM
XSLT Newbie: Attribute Value transformed to Attribute Name bprimuslevy XML 1 08-23-2006 09:56 PM
Invalid 'name' attribute name =?Utf-8?B?QW5kZXJzIEphbnNzb24=?= ASP .Net 3 02-14-2006 06:05 PM
Read form "name" attribute when it contains form field with name "name" Pavils Jurjans Javascript 3 03-18-2005 01:39 PM
Re: Urgent! how to get object name, method name and attribute name based on the strings? ding feng C++ 2 06-25-2003 01:18 PM



Advertisments