2014-11-25 2 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), чтобы узнать о переменных типа информации во время выполнения.

0

в РЕПЛ (интерактивная консоль), вы также можете сделать

>>> help(x) 

и он будет отображать информацию о классе x «s, включая его методы.

Смежные вопросы