# -*- coding:utf-8 -*- # python 是面向对象的编程语言,面向对象特点:继承、封装、多态 # 面向对象编程:和面向过程一样,是一种编程思想 # 类和对象: # 什么是类?类是具有相同属性和行为方法的事物的抽象的集合 # 类的例子: 人类、鱼类、猴子类 # 人类的属性: 身高、体重、性别、年龄、姓名 # 人类的行为: 吃喝拉撒睡 # 什么是对象? 类的具体的实例化 # 人类中的对象:马云、麻花腾、丁三石 # 类的作用:创建对象,一般会在类中定义一些属性和函数,当使用类创建对象的时候, # 该对象就会拥有类中定义的这些属性和函数 # 类中一些属性和函数,是由所有的对象身上共同的属性和行为抽离出来的 # 对象的作用:实现函数和属性的调用执行的 d1 = {'name':'张三', 'age':22, 'phone': 110} d2 = {'name':'李四', 'age':21, 'phone': 120} student_list = [d1,d2] # 在python中如何声明一个类型: # class 班级群体 # object 继承的父类 object 基类、顶级父类 class People(object): # pass 保证语法完整性 # pass # 人出生的时候,已经具有的性别、年龄、身高、体重 def __init__(self,name,age,phone): # 在这个函数中需要将创建对象时就应该拥有的一些属性赋值 # 对象.属性名 = 属性值 self.name = name self.age = age self.phone = phone # 使用People类创建一个对象 # 对象名 = 类名() # 当创建一个对象时,会在内存中开辟一块空间,来存放这个对象,这个对象是有一个地址的 # 每次创建的对象都是一个单独个体,他们的内存地址都是不一样的 p1 = People('张三',22,110) # <__main__.People object at 0x0000000000A6C550> # 0x0000000000A6C550 内存地址 # 内存: 程序运行时,在计算机中占用的空间 # python中自动管理内存的 # 电脑上的500GB 1TB 这种事硬盘空间(存储空间) print(p1) # 获取对象的属性值 # 格式:对象.属性名 name = p1.name print(name) age = p1.age print(age) # 对象.属性名 = 属性值 # 修改对象的属性值 p1.name = '李四' print(p1.name) # python中用来设置对象属性值的函数 # setattr() # 第一个参数,要设置属性值的对象;第二个参数,要设置的属性名;第三个参数,要设置的属性值 setattr(p1,'age',21) print(p1.age) # 可以给对象添加新的属性 # 对象.属性名 = 属性值 如果这个属性不存在,那就是添加属性 p1.sex = '男' print(p1.sex) # 删除对象的属性 # 对象的属性被删除之后,就不能再使用了 del p1.sex # 删除对象属性的函数 # 1.要删除的对象 2.要删除额属性名 # delattr(p1,'phone') # 删除之后,就不能再使用这个属性了 # print(p1.phone) # setattr() 动态添加属性 attr_dict = {'iq':'150','eq':'150','color':'yellow'} # for 循环遍历字典 for key,value in attr_dict.items(): # key是属性名 , value是属性值 # setattr,可以将一个字符串的属性名,添加到对象的属性中 # p1.key = value 这种方式无法添加,相当于写了p1.'iq' = '150' setattr(p1,key,value) print(p1.iq) # delattr() 动态删除属性 # 删除对象p1中的属性 attr_list = ['iq','eq','color'] for attr in attr_list: # 可以使用delattr函数删除 delattr(p1, attr) # 对象的属性删除之后,不可使用 # print(p1.iq)
基于python的-类和对象详解1
最新推荐文章于 2023-06-11 17:28:00 发布