2015-06-05 33 views
3

x = int當你將int分配給Python中的變量時,這意味着什麼?

我明白,這將使x一個整數,如果它是不是已經一個,但我想了解這背後的過程。特別是,我想知道int是什麼(而不是int())。我知道int()是一個函數,但我不知道int是什麼。鏈接到關於int的文檔會很有幫助,因爲我找不到任何文檔。

+6

「據我所知,如果它不是一個整數,這將使x成爲一個整數」 - 它不會。 – user2357112

回答

6

想象一下,你有一個功能叫做func

def func(): 
    print("hello from func") 
    return 7 

如果然後分配funcx要分配的功能本身x通話

x = funC# note: no() 
x() # calls func() 
y = x() # y is now 7 

的結果你正在尋找一個與int相似的東西這個背景。

x = int 
y = x('2') # y is now 2 
+2

爲這樣簡單的好例子投票!我從來沒有注意到它! –

+0

我也建議,像int/float等基本的東西,這是一個非常糟糕的主意。它只會降低代碼的可讀性。 –

7

x = int不會使x變成一個整數。 int是整數類型。做x = int會將x設置爲int類型的值。鬆散地說,x將成爲整數類型的「別名」。

如果你調用 INT類型的東西,如int('2'),它會將你給的整數轉換爲整數(如果可以的話)。如果將該調用的結果分配給一個變量,它會將該變量設置爲您從調用int獲得的整數值。因此,設置x = int('2')將設置x爲2.

您應該閱讀the Python tutorial以瞭解類型,變量和調用在Python中的工作方式。

+0

好的問題跟着一個美麗的答案 – The6thSense

+1

它是類似於C中的「* typedef *」嗎? –

+2

@ d-coder:只有非常非常鬆散。在Python中,類型(和函數,幾乎所有的東西)都是第一類對象,就像整數,字符串和列表一樣。所以,Python不需要像'typedef'那樣的任何東西。你正在做的是爲同一個對象創建另一個名字。對象碰巧是一個類型的事實是無關緊要的;它與'x = 2'爲'2'對象創建另一個名稱沒有什麼不同。 – abarnert

相關問題