how to pass attribute name via sys.argv

F

Felix Hebeler

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
 
W

Wolfram Kraus

Felix said:
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
 
G

Gilles Lenfant

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
 
F

Felix Hebeler

Wolfram said:
Felix Hebeler wrote:
I need to call an object attribute:

value = object.attrName[0]
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
 

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,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top