>>> class A:
... pass
...
>>> class B(A):
... pass
...
>>> isinstance(A(), A)
True
>>> type(A()) == A
True
>>> isinstance(B(), A)
True
>>> type(B()) == A
False
注意:
Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加,
True==1、False==0 会返回 True,但可以通过 is 来判断类型。
>>> issubclass(bool, int)
True
>>> True==1
True
>>> False==0
True
>>> True+1
2
>>> False+1
1
>>> 1 is True
<python-input-12>:1: SyntaxWarning: "is" with 'int' literal. Did you mean "=="?
1 is True
False
>>> 0 is False
<python-input-13>:1: SyntaxWarning: "is" with 'int' literal. Did you mean "=="?
0 is False
False
为·什么会出现 SyntaxWarning?
Python 检测到你在用 is 比较一个字面量整数(如 1)和
True,这通常是代码错误(因为 is 比较的是身份,而不是值)。
#!/usr/bin/python3
sites ={'Google','Taobao','Runoob','Facebook','Zhihu','Baidu'}print(sites)# 输出集合,重复的元素被自动去掉# 成员测试if'Runoob'in sites :
print('Runoob 在集合中')else :
print('Runoob 不在集合中')# set可以进行集合运算
a =set('abracadabra')
b =set('alacazam')print(a)print(a - b)# a 和 b 的差集print(a | b)# a 和 b 的并集print(a & b)# a 和 b 的交集print(a ^ b)# a 和 b 中不同时存在的元素