类:是指具有相同属性,和行为方法(函数)的对象,的抽象的集合。
对象:是指类的具体实例化
# 在python中如何声明一个类
# 格式:class 类名(父类):
class people(object):
pass
pass: 没有实际意义,只是为了保证语法的完整性, object: 基类,顶级父类(所有类的父类)
class People(object):
#如果需要在创建对象的时候,给对象属性赋值,就可以在初始化函数中传递参数,给属性赋值,如果不需要初始化对象属性值,就不用写
def __init__(self,name):#(类的初始化函数),在创建对象的时候自动调用
# 在这个函数中需要将创建对象时就应该拥有的一些属性赋值
# 格式:对象.属性名 = 属性值
self.name = name
# 使用People类创建一个对象
# 格式:对象名 = 类名()
p1 = People('小明')
# 当创建一个对象时,会在内存中开辟一块空间,来存放这个对象,这个对象是有一个地址的
# 每次创建的对象都是一个单独个体,他们的内存地址都是不一样的
# 获取对象的属性值
# 格式:对象.属性名
name = p1.name
#使用这种格式获取属性值,当属性不存在时会报错
name = p1.sss
AttributeError: 'People' object has no attribute 'ssss'
# getattr(obj, name, default) obj:要获取属性值的对象default:若要d当获取的属性不存在,会给变量一个的默认值
name = getattr(p1, name, '小明')
# 修改对象的属性值
# 1.对象名.属性名 = 属性值 属性名存在时,修改此属性值,当该属性名不存在时,就是为该对象添加该属性
p1.name = '张三'
# 2.setattr(obj, name, value) obj:要修改属性值的对象value:要修改的属性值
setattr(p1, 'name', "李四")
print(p1.name)
>>>李四
# 删除对象的属性
# 对象的属性被删除之后,就不能再使用了
# 1.del 对象名.属性名
del p1.sex
# 2.delattr(obj, name) obj:要删除的对象 name:要删除的对象属性
delattr(p1, 'sex')
# 若删除的属性不存在,会抛出 AttributeError: sss 要删除的属性不存在的异常