目录索引
- ==1. hasattr():==
- ==2. getattr():==
有:
没有则报错:
- ==3. setattr():==
- ==4. delattr():==
- ==5. issubclass():==
- ==6. isinstance():==
判断前面是不是属于后面的类型:
判断前面是不是属于后面的类型之一:
判断前面是不是属于后面的实例化对象:
内置函数将会给我们提供一些简单的方法供我们使用,这是python解释器自带的,不用我们再进行下载。
- 我们先创建一个类,用于后面举例子时使用,默认携带该例子
class Person(object):
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def run(self):
print(f"{self.name}的年龄是{self.age}性别是{self.sex}")
people = Person("小明",18,"男")
people.run()
1. hasattr():
has+attr,用于判断对象有没有这个属性,有则返回True,没有则返回False
print(hasattr(Person,"age"))#如果第一个参数是类名,无论有没有属性都是False
print(hasattr(people,"age"))
print(hasattr(people,"height"))
第一个参数一般是实例化对象的变量名,第二个参数则是要测的属性。
呈现效果:
2. getattr():
顾名思义:get+attr,获取有属性的属性值,有就返回,否则就会报错
有:
print(getattr(people,"name"))
没有则报错:
print(getattr(people,"height"))
3. setattr():
set+attr,用于设置属性值,无则增,有则改
setattr(people,"height",180)#增加了一个属性
print(hasattr(people,"height"))#变为了True
setattr(people,"sex","女")
print(getattr(people,"sex"))#变成了"女"
第一个参数是实例化对象名,第二个参数是属性,第三个参数是给属性设置的值
4. delattr():
del +attr,用于删除属性值
delattr(people,"name")
print(hasattr(people,"name"))#变成了False
5. issubclass():
is+sub+class,用于判断前面这个类是不是后面这个类的子类,如果是则返回True,否则返回False
class Person1(Person):
pass
class Person2(object):
pass
print(issubclass(Person1,Person))
print(issubclass(Person2,Person))
注意: 两个参数都是类名
6. isinstance():
is+instance,是例子吗?该函数有三个方法:
判断前面是不是属于后面的类型:
a = 3
print(isinstance(a,int))#True
print(isinstance(a,str))#False
判断前面是不是属于后面的类型之一:
a = 3
print(isinstance(a,(int,str)))#True
print(isinstance(a,(str,list)))#False
判断群用括号包裹即可,只要其中有一个符合就返回True
判断前面是不是属于后面的实例化对象:
print(isinstance(people,Person))#True
print(isinstance(people,Person1))#False
isinstance()的用法非常广泛:
- 判断函数类型,可单可群
- 判断是否是实例化对象