First time here? Check out the FAQ!

Ask Your Question
0

How can I find out the name of some variable?

asked 11 years ago

AndreWin gravatar image

updated 10 years ago

tmonteil gravatar image

Hello! For example I have variable p in sage notebook. I need my class can find out the name of variable:

sage: p = 3
sage: my_class(p)
ans:  'p'

How to implement this feature? Thanks. P.S.: sorry if my english isn't good.

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
2

answered 11 years ago

tmonteil gravatar image

updated 11 years ago

You should understand that an object may have different names:

sage: p = 3
sage: q = p
sage: id(p)
529391024
sage: id(q)
529391024

Here, p is the name of the same object than q (i mean, they both are the name of the same location in memory). Hence, your question is not well defined, since Sage (or Python) will not be able to make a difference between p and q. If you need such a feature, there may a better way to write your progam.

That said, you can try to look for your variable in the globals() dictionary:

sage: def my_name(p):
....:     for name, value in globals().items():
....:         if id(value) == id(p):
....:             return name

sage: my_name(p)
'p'
sage: my_name(q)
'p'

That said, this is quite a dirty method, and you should consider avoiding it.

Preview: (hide)
link

Comments

Thank you very much!)))

AndreWin gravatar imageAndreWin ( 11 years ago )

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 11 years ago

Seen: 548 times

Last updated: Jun 05 '13