开发者学堂课程【Python 入门 2020年版:Is&isinstance&issbuclass 的使用 】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10391
Is&isinstance&issbuclass 的使用
面相对象相关方法
1.is 身份运算符,运算符是用来比较是否是同一个对象
2.type(p1) 其实获取的就是类对象
3.isinstance 用来判断一个对象是否由指定的类(或者父类)实例化出来的
4.isssubclass 用来判断一个类是否是另一个类的子类
class person(object):
def__init__(self,name,age):
self.name=name
self.age=age
class Student(person)
pass
p1=Person('张三',18)
p2=Person('张三',18)
s=Student('jake',20)
#获取两个对象的内存地址 id(p1)==id(p2)
print(p1 is p2) 1. # is身份运算符,运算符是用来比较是否是同一个对象
print(type(p1) 的运行结果
如图:
5.#type(p1) #其实获取的就是类对象
a=1
if type(a)==int:
print('a是一个整数类型')
运行结果是正常的。
想判断 p1 是不是 Person 类可以这样写:
if type(p1)==Person:
print('p1是Person类创建的实例对象')
运行结果如图:
#s 这个实例对象是否由 student 类创建的?
print(type(s)==Student)
运行结果是没问题的。
如果:
print(type(s)==Person)
运行结果就会显示 False
它的类型是一个学生,也是一个人,有一种运算符可以同时包括。
3.# isinstance 用来判断一个对象是否由指定的类(或者父类)实例化出来的
实例化就是一个创建的过程
print(isinstance(s,Student))
运行结果 #Ture
print(isinstance(s,Person))
运行结果 #Ture
print(isinstance(p1,Person))
运行结果 #True
print(isinstance(p1,Student))
运行结果 #False
isinstance
是内置函数
4.isssubclass 用来判断一个类是否是另一个类的子类
print(isssubclass(Student,Person,X)))
运行结果 # True
print(isinstance(Person,Student))
运行结果 # False