本系列文章配套代码获取有以下三种途径:
-
可以在以下网站查看,该网站是使用JupyterLite搭建的web端Jupyter环境,因此无需在本地安装运行环境即可使用,首次运行浏览器需要下载一些配置文件(大约20M):
https://returu.github.io/Python_Basic/lab/index.html
-
也可以通过百度网盘获取,需要在本地配置代码运行环境,环境配置可以查看【Python基础】2.搭建Python开发环境:
链接:https://pan.baidu.com/s/1x2Ynh_VibPY2u-HWTaJo8w?pwd=mnsj
提取码:mnsj
-
前往GitHub详情页面,单击 code 按钮,选择Download ZIP选项:
https://github.com/returu/Python_Basic
——————————————————
1.isinstance()函数:
isinstance(object , class_name)
函数用于判断某个实例对象(object)是否是某个类(class_name)或其派生类生成的实例,如果是则返回True。
1# 定义类
2>>> class Student:
3... pass
4
5# 定义类——>父类为Student
6>>> class MaleStudent(Student):
7... pass
8
9# 定义类——>父类为Student
10>>> class FemaleStudent(Student):
11... pass
12
13# 定义类——>父类为MaleStudent+FemaleStudent
14>>> class ThisStudent(MaleStudent , FemaleStudent):
15... pass
16
17# 实例化对象
18>>> one_student = ThisStudent()
19# 判断实例
20>>> isinstance(one_student , MaleStudent)
21True
22# 判断实例
23>>> isinstance(one_student , Student)
24True
2.issubclass()函数:
issubclass(class1 , class2)
函数用于判断类1是否是类2 的子类,如果是则返回True。
1# 定义类
2>>> class Student:
3... pass
4
5# 定义类——>父类为Student
6>>> class MaleStudent(Student):
7... pass
8
9# 定义类——>父类为Student
10>>> class FemaleStudent(Student):
11... pass
12
13# 定义类——>父类为MaleStudent+FemaleStudent
14>>> class ThisStudent(MaleStudent , FemaleStudent):
15... pass
16
17# 判断类
18>>> issubclass(ThisStudent , MaleStudent)
19True
20# 判断类
21>>> issubclass(ThisStudent , Student)
22True
23# 判断类
24>>> issubclass(FemaleStudent , ThisStudent)
25False
3.hasattr()函数:
hasattr(object, attr_name)
函数用于判断实例中是否含有某个属性,如果有则返回True。
1# 定义类
2>>> class Student:
3... schoolname = "光明小学"
4...
5... def __init__(self , name , age):
6... self.name = name
7... self.age = age
8...
9... def get_info(self):
10... print(self.name)
11
12>>> one_student = Student("Tom" , 12)
13# 判断类实例中是否含有某个属性
14>>> hasattr(one_student , "schoolname")
15True
16# 判断类实例中是否含有某个属性
17>>> hasattr(one_student , "name")
18True
19# 判断类实例中是否含有某个属性
20>>> hasattr(one_student , "age")
21True
22# 判断类实例中是否含有某个属性
23>>> hasattr(one_student , "type")
24False
4.getattr()函数:
getattr(object, attr_name [, default])
函数用于获取某个实例中的某个属性信息,如果含有某个属性则返回该属性的值,如果不含有某个属性则返回default值(如果没有指定default值则返回AttributrError)。
1# 定义类
2>>> class Student:
3... schoolname = "光明小学"
4...
5... def __init__(self , name , age):
6... self.name = name
7... self.age = age
8...
9... def get_info(self):
10... print(self.name)
11
12>>> one_student = Student("Tom" , 12)
13
14# 获取属性信息
15>>> getattr(one_student , "name")
16'Tom'
17# 获取属性信息
18>>> getattr(one_student , "age")
1912
20# 获取属性信息
21>>> getattr(one_student , "type" , "实例中不含有该属性")
22'实例中不含有该属性'
23# 获取属性信息
24>>> getattr(one_student , "type")
25AttributeError: 'Student' object has no attribute 'type'
5.setattr()函数:
setattr(object, attr_name , attr_value)
函数用于为类实例中的某个属性赋值,如果实例中不含有该属性,则新建一个。
1# 定义类
2>>> class Student:
3... schoolname = "光明小学"
4...
5... def __init__(self , name , age):
6... self.name = name
7... self.age = age
8...
9... def get_info(self):
10... print(self.name)
11
12>>> one_student = Student("Tom" , 12)
13
14# 对属性进行赋值
15>>> setattr(one_student , "name" , "Lucy")
16# 对属性进行赋值
17>>> setattr(one_student , "type" , "one")
18# 获取实例中的所有属性
19>>> one_student.__dict__
20{'name': 'Lucy', 'age': 12, 'type': 'one'}
6.getattr()函数和setattr()函数混合使用:
setattr()
函数可以与getattr()
函数混合使用。
先通过setattr()
函数为实例中的属性赋值,然后再通过getattr()
函数获取实例中的属性信息。
1# 定义类
2>>> class Student:
3... schoolname = "光明小学"
4...
5... def __init__(self , name , age):
6... self.name = name
7... self.age = age
8...
9... def get_info(self):
10... print(self.name)
11
12>>> one_student = Student("Tom" , 12)
13
14# 获取属性信息
15>>> getattr(one_student , "name" , setattr(one_student , "name" , "Lucy"))
16'Lucy'
17# 获取属性信息
18>>> getattr(one_student , "type" , setattr(one_student , "type" , "one"))
19'one'
本篇文章来源于微信公众号: 码农设计师