python判断对象是否实例化_python中检测类和对象
知识回顾:
1.类的代码块。
2.类的私有化。
在python中,我们类中其实是没有绝对的私有的。本质上python语⾔中所有的类中的属性和⽅法都是公开的。
本节知识视频教程
⽂字教程开始:
补充⼀下
好的开发习惯,在定义类名字的时候,我们往往⾸字母⼤写。
如果说⼀个名称中有多个单词的时候,我们往往将各个单词的⾸字母⼤写。
⼀、issubclass函数
⽤来检测⼀个类是否是另⼀个 类的⼦类。
应⽤说明:⼀旦检测到⼀个类是另⼀个类的⼦类后,实际上就可以调⽤⽗类中所有的⽅法和属性。
举例:
issubclass(Teacher,Person)
说明:第⼀个参数是⼦类的类名,第⼆个参数是⽗类的类名
这个函数第⼀个参数的类名是第⼆个参数的 类名的⼦类,那么结果返回true,否则返回false
⼆、使⽤魔法属性检测⽗类
通过类名的魔法属性__bases__
使⽤魔法属性输出后的格式是这样的:(,)
三、检测对象
使⽤isinstance函数,它有两个参数,第⼀参数是某个对象,第⼆个参数是某个类的类名。结果返回第
⼀个参数的对象是否是第⼆个参数的类名实例化⽽来的。如果确实是实例化的对象就返回true,否则返回false。
这⾥要注意:第⼀个参数的实例对象如果它的类有⽗级继承关系,那么第⼆个参数中的类名如果是⽗类的类名,结果也会返回true。
举例如下:
isinstance(teach,Person)
四、总结强调
1.掌握issubclass函数检测⼀个⼦类是否是⽗类的⼦类。
2.掌握__base__魔法属性来查看所继承的⽗类
3.掌握isinstance函数检测⼀个对象是否是另⼀个类实例化⽽来的对象。
本节源代码:class Person:
实例化类和实例化对象def setAge(self,age):
self.age=age
def getAge(self):
return self.age
def sayHello(self):
print("hello,⽼刘")
class Teacher(Person):
def setMajor(self,major):
self.major=major
def getMajor(self):
return self.major
class Student:
def sayWhat(self):
print("我是学⽣类")
print("检测⼀个类是否是另⼀个类的⼦类",issubclass(Teacher,Person)) print("使⽤魔法⽅法查⽗类",Teacher.__bases__)
#检测类的对象是否是某个类实例化⽽来的
teach=Teacher()
stu=Student()
print(isinstance(teach,Person))
相关⽂章:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论