如何确定Python变量';s型?
如何查看变量的类型,无论是无符号32位、有符号16位等如何确定Python变量';s型?,python,types,unsigned,signed,16-bit,Python,Types,Unsigned,Signed,16 Bit,如何查看变量的类型,无论是无符号32位、有符号16位等 如何查看它?您可能正在寻找内置函数 请参见下面的示例,但是Python中没有像Java一样的“unsigned”类型 正整数: >>> v = 10 >>> type(v) <type 'int'> >>> v = 100000000000000 >>> type(v) <type 'long'> >>> v = -10 &
如何查看它?您可能正在寻找内置函数 请参见下面的示例,但是Python中没有像Java一样的“unsigned”类型 正整数:
>>> v = 10
>>> type(v)
<type 'int'>
>>> v = 100000000000000
>>> type(v)
<type 'long'>
>>> v = -10
>>> type(v)
<type 'int'>
>v=10
>>>类型(v)
大正整数:
>>> v = 10
>>> type(v)
<type 'int'>
>>> v = 100000000000000
>>> type(v)
<type 'long'>
>>> v = -10
>>> type(v)
<type 'int'>
>>v=1000000000000
>>>类型(v)
负整数:
>>> v = 10
>>> type(v)
<type 'int'>
>>> v = 100000000000000
>>> type(v)
<type 'long'>
>>> v = -10
>>> type(v)
<type 'int'>
>v=-10
>>>类型(v)
字符的文字顺序:
>>> v = 'hi'
>>> type(v)
<type 'str'>
>v='hi'
>>>类型(v)
浮点整数:
>>> v = 3.14159
>>> type(v)
<type 'float'>
>>> import sys
>>> format(sys.maxint, '032b')
'01111111111111111111111111111111'
>>> format(-sys.maxint - 1, '032b') # minimum value, see docs.
'-10000000000000000000000000000000'
>v=3.14159
>>>类型(v)
在处理此类问题时,我也强烈推荐交互式口译员。它允许您键入variable\u name?
,并将返回有关对象的完整信息列表,包括类型和类型的文档字符串
e、 g
[9]中的var=123
在[10]:var?
类型:int
基类:
字符串形式:123
名称空间:交互式
文档字符串:
int(x[,基])->整数
如果可能,将字符串或数字转换为整数。浮点参数将被截断为零(这不包括字符串)
表示浮点数!)转换字符串时,请使用可选的基。转换数据时提供基是错误的
非字符串。如果参数超出整数范围,则为长对象
将被返回。这个问题有点模棱两可——我不确定你所说的“视图”是什么意思。如果您试图查询本机Python对象的类型,那么这个问题的答案将引导您朝着正确的方向前进 但是,如果您试图生成具有基本C类型语义的Python对象(例如
uint32\u t
,int16\u t
),请使用模块。您可以通过以下方式确定给定C类型原语中的位数:
>>> struct.calcsize('c') # char
1
>>> struct.calcsize('h') # short
2
>>> struct.calcsize('i') # int
4
>>> struct.calcsize('l') # long
4
这也反映在数组
模块中,该模块可以生成以下较低级别类型的数组:
>>> array.array('c').itemsize # char
1
支持的最大整数(Python2的int
)由给出
还有,它返回剩余内存中Python对象的实际大小:
>>> a = 5
>>> sys.getsizeof(a) # Residual memory.
12
对于浮点数据和精度数据,请使用:
你的意思是用还是用
在第一种情况下,您根本不能,因为Python没有带符号/无符号的16/32位整数
在第二种情况下,可以使用type()
:
>>导入ctypes
>>>a=ctypes.c_uint()#无符号整数
>>>类型(a)
有关ctypes的更多参考信息,请参阅。Python没有您描述的类型。有两种类型用于表示整数值:
int
,它对应于C中平台的int类型;和long
,它是一个任意精度的整数(即,它根据需要增长,没有上限)<如果表达式生成的结果无法存储在int
中,则code>ints会自动转换为long
,请使用内置函数:
>>> i = 123
>>> type(i)
<type 'int'>
>>> type(i) is int
True
>>> i = 123.456
>>> type(i)
<type 'float'>
>>> type(i) is float
True
请注意,Python的类型与C/C++不同,这似乎是您的问题。这实际上取决于您所指的级别。在Python2.x中,由于历史原因,有两种整数类型,
int
(限制为sys.maxint
)和long
(无限制精度)。在Python代码中,这应该没有什么区别,因为当数字太大时,解释器会自动转换为long。如果您想知道底层解释器中使用的实际数据类型,这取决于实现。(CPython位于Objects/intobject.c和Objects/longobject.c中)要了解系统类型,请查看cdleary答案以了解如何使用struct模块。这可能有点无关。但是,您可以使用前面提到的isinstance(object,type)检查对象的类型。使用\uu class\uuuuuuu
还有一种方法:
>>> a = [1, 2, 3, 4]
>>> a.__class__
<type 'list'>
>>> b = {'key1': 'val1'}
>>> b.__class__
<type 'dict'>
>>> c = 12
>>> c.__class__
<type 'int'>
>a=[1,2,3,4]
>>>一节课__
>>>b={'key1':'val1'}
>>>班__
>>>c=12
>>>c._类__
这太简单了。你是这样做的
print(type(variable_name))
如何确定Python中的变量类型?
因此,如果您有一个变量,例如:
one = 1
class Foo(object):
def foo(self):
self.__class__
你想知道它的类型吗
在Python中,几乎每件事情都有正确的方法和错误的方法。这是正确的方法:
使用类型
不要使用\uuuu类\uuuuu
在Python中,以下划线开头的名称在语义上不是公共API的一部分,用户最好避免使用它们。(绝对必要时除外。)
由于type
为我们提供了对象的类,我们应该避免直接获取该类:
>>> one.__class__
这通常是人们在方法中访问对象类型时的第一个想法——他们已经在寻找属性了,所以类型看起来很奇怪。例如:
one = 1
class Foo(object):
def foo(self):
self.__class__
不要。相反,请键入(self):
int和float的实现细节
如何查看变量的类型,无论是无符号32位、有符号16位等
在Python中,这些细节是实现细节。因此,一般来说,我们在Python中通常不担心这一点。然而,为了满足你的好奇心
在Python 2中,int通常是一个有符号整数,等于实现的宽度(受系统限制)。它通常实现为一个。当整数大于此值时,我们通常将其转换为Python long(精度不限,不要与C long混淆)
例如,在32位Python 2中,我们可以推断int是一个有符号的32位整数:
>>> v = 3.14159
>>> type(v)
<type 'float'>
>>> import sys
>>> format(sys.maxint, '032b')
'01111111111111111111111111111111'
>>> format(-sys.maxint - 1, '032b') # minimum value, see docs.
'-10000000000000000000000000000000'
在Python3中,旧的int消失了,我们只使用(Python的)long作为int,它具有
我们还可以获得一些关于Python浮动的信息,这些浮动通常在C中实现为:
结论
不要使用语义上非公共的API\uuuu class\uuuu
,来获取变量的类型。改用类型
<
assert type(variable_name) == int
assert type(variable_name) == bool
assert type(variable_name) == list
print (type(variable_name))
print type(variable_name)
print type(variable_name)
print(type(variable_name))
a = "cool"
type(a)
//result 'str'
<class 'str'>
or
do
`dir(a)`
to see the list of inbuilt methods you can have on the variable.