我怎么知道我的变量是什么类型的?

时间:2014-11-25 13:35:34

标签: python python-3.x numpy

在阅读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中它很简单。即使我不知道这个方法,我也知道变量类型。

5 个答案:

答案 0 :(得分: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 :(得分:2)

Python是一种dynamically typed语言。从技术上讲,在阅读代码时,如果不遵守代码,或者代码过于简单,您将无法知道变量的类型。

给你一些引用:

  

Python是强类型的,因为解释器会跟踪所有变量类型。它也非常动态,因为它很少使用它所知道的来限制变量的使用。

     

在Python中,程序负责使用内置函数(如isinstance()和issubclass()来测试变量类型和正确使用。

您可以使用isinstance(x, type)type(x)在运行时了解变量类型信息。

答案 2 :(得分: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 :(得分:1)

type(x)是一个明确的回答。通常,您不会通过type对其进行测试,而是使用isinstance(x, type)对其进行测试。

答案 4 :(得分:0)

在REPL(交互式控制台)中,您也可以

>>> help(x)

它会显示有关x类的信息,包括它的方法。