WELCOME

不积跬步,无以至千里;不积小流,无以成江海。

Python面向对象--对象相关的内置函数

对象相关的内置函数

1.is:判断两个对象知否指向同一块内存地址

obj is obj:判断两个obj是否是指向同一块内类地址(用来比较两个对象的内存地址,看这两个对象是否是同一个对象。)
返回bool类型值

 

 1 class Person(object):
 2     def __init__(self, name, age):
 3         self.name = name
 4         self.age = age
 5 
 6 
 7 p1 = Person('张三', 18)
 8 p2 = Person('张三', 18)
 9 p3 = p1
10 
11 print(p1 is p2)  # >> False
12 print(p1 is p3)  # >> True

 

2.isinstance:判断对象和类之间的关系

isinstance(obj,类):判断obj是不是类的对象,或者判断obj是不是该类子类的对象
返回bool类型值
 1 class Person:
 2     def __init__(self, name, age):
 3         self.name = name
 4         self.age = age
 5 
 6 
 7 class Student(Person):
 8     def __init__(self, name, age, score):
 9         super(Student, self).__init__(name, age)
10         self.score = score
11 
12 
13 class Dog:
14     def __init__(self, name, color):
15         self.name = name
16         self.color = color
17 
18 
19 p = Person('tony', 18)
20 s = Student('jack', 20, 90)
21 d = Dog('旺财', '白色')
22 
23 print(isinstance(p, Person))  # >> True    对象p是由Person类创建出来的
24 print(isinstance(s, Person))  # >> True    对象s是有Person类的子类创建出来的
25 print(isinstance(d, Person))  # >> False   对象d和Person类没有关系

 

3.issublcass:判断类与类之间的关系

issubclass 用来判断两个类之间的继承关系。
返回值bool类型值

 

 1 class Person:
 2     def __init__(self, name, age):
 3         self.name = name
 4         self.age = age
 5 
 6 
 7 class Student(Person):
 8     def __init__(self, name, age, score):
 9         super(Student, self).__init__(name, age)
10         self.score = score
11 
12 
13 class Dog:
14     def __init__(self, name, color):
15         self.name = name
16         self.color = color
17 
18 
19 print(issubclass(Student, Person))  # True
20 print(issubclass(Dog, Person))  # False

 

posted @ 2022-04-01 18:43  Ambitious~  阅读(55)  评论(0)    收藏  举报