@R星校长
第1
关:类的内建函数
对于类、实例和其它对象而言,存在着一些内建函数,这些内建函数无需定义,可直接调用。本关的任务就是让学习者掌握并能使用这些内建函数。
issubclass()
issubclass()
是一个布尔函数,这个函数用来判断一个类是否是另外一个类的子类或者子孙类。如果给出的子类确实是给出的父类的子类,则返回True
,否则返回False
。它的语法如下:
issubclass(subclass, parentclass)
parentclass
也可以是一个包含若干个父类的元组,只要子类属于元组中某一个父类,则返回True
,否则返回False
。
isinstance()
isinstance()
是一个布尔函数,这个函数用来判断一个对象是否是给定类的实例。若是给定类的实例或是给定类的子类的实例,则返回True
,否则返回False
。它的语法如下:
isinstance(object,class)
hasattr()
、getattr()
、setattr()
、delattr()
这几个函数可以在各种对象下工作,不限于类和实例。
- (1)
hasattr()
; hasattr()
是布尔型的,它用于判断一个对象是否有一个特定的属性,一般用于在调用某个属性前检查属性是否存在。例如:
class testClass(object):
foo = 100
def __init__(self,name):
self.name = name
test = testClass('theName')
print(hasattr(test,'name'))
print(hasattr(testClass,'foo'))
结果为:
True
True
(2)getattr()
、setattr()
;
getattr()
是用来获取对象的属性或者方法。若返回的是对象,则返回对象的值,若返回的是对象的方法,则返回方法的内存地址。setattr()
是用来给对象的属性赋值。若属性不存在,就先创建属性然后再赋值。例如:
class test