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