2014-11-25 60 views
2

我不知道如何確定給定變量的類型,而我讀取Python代碼。我想知道變量的類型,但沒有深入瞭解爲它們初始化值的方法。我說,我有一段代碼:我如何知道我的變量是什麼類型?

import numpy as np 

np.random.seed(0) 
n = 10000 
x = np.random.standard_normal(n) 
y = 2.0 + 3.0 * x + 4.0 * np.random.standard_normal(n) 
xmin = x.min() 
xmax = x.max() 
ymin = y.min() 
ymax = y.max() 

我怎麼知道x是什麼類型的?在Java中它很簡單。即使我不知道方法,我也知道變量類型。

回答

1

使用dtype

n = 10000 
x = np.random.standard_normal(n) 
x.dtype 

給出:

dtype('float64') 

如果你想在array attributes更詳細的信息,你可以使用info

np.info(x) 

給:

class: ndarray 
shape: (10000,) 
strides: (8,) 
itemsize: 8 
aligned: True 
contiguous: True 
fortran: True 
data pointer: 0xba10c48 
byteorder: little 
byteswap: False 
type: float64 
3

您可以使用內置的type功能檢查變量的類型。

import numpy as np 

np.random.seed(0) 
n = 10000 
x = np.random.standard_normal(n) 
print(type(x)) 
# numpy.ndarray 

如果在numpy特定情況下,要檢查你的元素的類型,那麼你可以做

print(x.dtype) 
# dtype('float64') 
1

type(x)是straitforward答案。通常情況下,您不通過type進行測試,而是使用isinstance(x, type)進行測試。

2

Python是dynamically typed語言。從技術上講,在閱讀代碼時,如果不遵循代碼,或者代碼過於簡單,您將無法知道變量的類型。

爲你幾個報價:

Python是強類型的解釋跟蹤所有的變量類型。這也是非常動態的,因爲它很少使用它所知道的限制變量使用。

在Python中,程序有責任使用isinstance()和issubclass()等內置函數來測試變量類型和正確的用法。

您可以使用isinstance(x, type)type(x)在運行時瞭解變量類型信息。

在REPL(交互式控制檯)
0

,你也可以做

>>> help(x) 

,它會顯示有關x的類,其中包括它的方法的信息。

相關問題