2014-07-15 113 views
2

我想靈活地爲python中的變量賦值,無論我的代碼中的變量是在哪裏。python靈活,內聯變量賦值

例如,假定在if語句變量x ...

if(x == 5): 
    print "that's odd." 
else: 
    print "Woot." 

我希望能夠爲x右if語句是這樣的:

if((x=3) == 5): 
    print "that's odd." 
else: 
    print "Woot." 

那可能嗎?這是另一個例子。比方說,我有一個行是:

y = x + 10 

我想爲x那裏:

y = (x=3) + 10 

所以我在尋找一種方法來在我的代碼的任何地方找到一個變量,並給它是一項價值分配。有沒有pythonic語法? 。

+5

這在Python中是不可能的。賦值給一個變量只能作爲一個單獨的語句發生。 – bereal

+0

我希望這是不可能在Python中。聲明一個變量,然後在同一行中使用它?爲什麼你想首先聲明它是一個變量? – theAlse

+6

請不要用C-isms污染我們其他美麗的語言:-) – paxdiablo

回答

0

Python不支持內聯分配。爲什麼?因爲一切都是對象,對象應該是可調用的。例如:

這是不可能的是蟒 if ((x=10) > 20):

這裏我們作爲Int類的實例分配x並在if表達執行它。

雖然這樣的陳述在C/C++中是可能的,因爲它是以不同的思維方式構建的。

0

globals()。 setitem(「一個」,1)或

這有點哈克, 但兩件事情是可能的, 申報/分配通過當地人()或全局(可變)函數。 使用or來鏈入位函數(返回None)。

我懷疑使用其中的任何一種都是一種很好的做法,但它們可用