a = 5
type(a)
# int
a = 'foo'
type(a)
# str
'5'+ 5
# 会出现错误,字符类型不能和数值类型相加。
a = 4
b = 2.5
print('a is {0}, b is {1}'.format(type(a), type(b)))
# a is <class 'int'>, b is <class 'float'>
isinstance()
函数检查对象是否是某个类型的实例。a = 1; b = 1.2
isinstance(a, int)
#True
isinstance(b, float)
#True
isinstance(a, bool)
#False
Python的对象通常都有属性(其他存储在对象内部的Python对象)和方法(对象的附属函数可以访问对象的内部数据)。
obj.attribute_name
访问属性和方法a = 'str'
dir(a)
# 查看a对象的属性和方法
getattr()
通过名字访问属性和方法。getattr(a, 'format')
# <function str.format>
访问对象的名字通常称作反射
。
不关心对象的类型,只关心对象是否有过某些方法或用途。通常被称为
鸭子类型
。走起路来像鸭子,叫起来像鸭子,那么它就是鸭子。
检验对象是否是列表(或是numpy数组),如果不是的话,将其转变成列表
def isiterable(obj):
try:
iter(obj)
return True
except TypeError:
return False
if not isinstance(x, list) and isiterable(x):
x = list(x)
is
方法,is not
可以判断两个对象是不同的。is
和is not
可以判断一个变量是否为None
a = [1,2,3]
b = a
c = list(a) # 新创建一个list
a is b
# True
a is not c
# True
a == c
# True
d = None
d is None
# True
原文:https://www.cnblogs.com/mephisto03/p/12293220.html