2015-07-19 59 views
-1

python有沒有一種方法來獲取分配給變量的實際語法?例如下面當我分配ln = len(ec2 ....),然後當我打印ln時,我得到預期的行爲...但我所尋找的是獲得在任何給定點分配的實際語法值,所以例如,當我打印LN(我知道它不會工作)我應該得到的價值「LEN(ec2.get_all_security_groups())。」我不知道,如果它甚至有可能,但要問...如何獲得分配給python中的變量的語法

>>> ln = len(ec2.get_all_security_groups()) 
>>> print ln 
8 
>>> dir(ln) 
['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__float__', '__floordiv__', '__format__', '__getattribute__', '__getnewargs__', '__hash__', '__hex__', '__index__', '__init__', '__int__', '__invert__', '__long__', '__lshift__', '__mod__', '__mul__', '__neg__', '__new__', '__nonzero__', '__oct__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdiv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'imag', 'numerator', 'real'] 
>>> 
+0

引用我不知道的方式做到這一點,但它可能會幫助,如果你會更具體的瞭解你正在努力實現。例如,你可以通過實現'__repr__'方法來設置對象的打印表示。 – shevron

+5

這是一個XY問題的完美例子(http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。請描述你想要解決的實際問題,因爲不是這樣。 – RemcoGerlich

+0

我不是想解決任何具體問題,我是編程新手,這只是我的好奇心。我在Google上發佈這條消息之前,Google搜索了一個小時左右,因爲我無法找到答案。我認爲如果你的代碼在1000行以內,打印出在任何給定點上變量的語法到底是什麼樣子是很好的。多數民衆贊成在.. –

回答

0

現在ln僅僅是一個數字,你希望它是一個功能,您可以用lambda

ln = lambda: len(ec2.get_all_security_groups()) 

或與常規函數將它定義爲一個內聯函數。

def ln(): return len(ec2.get_all_security_groups()) 

常規函數法通常是首選。

-2

使用三倍左右你的價值

ln = """len(ec2.get_all_security_groups())""" 

結果

ln 
'len(ec2.get_all_security_groups())' 
+0

我認爲這種類型的做法不過分,但是我放棄了分配的任何東西的價值,並將其轉換爲評論。 –

+0

你可能會考慮改寫你的問題。你有這個問題的方式,這就給你正是你所要求的。 –

相關問題