一、类和对象(1)
1.1、什么是面向对象?什么是类?什么是对象?以及它们的作用
#python是面向对象的编程语言,面向对象特点:继承、封装、多态
#面向对象编程:和面向过程一样,是一种编程思想
#类和对象:
#什么是类?类是具有相同属性和行为方法的事物的抽象的集合
#类的例子:人类,鱼类,猴子类
#人类的属性:身高,体重,性别,年龄,姓名
#人类的行为:吃喝拉撒睡
#什么是对象?类的具体的实例化
#人类中的对象:李彦宏,马云
#类的作用:创建对象,一般会在类中定义一些属性和函数,当使用类创建对象的时候,该对象就会拥有类中定义的这些属性和函数
#类中的一些属性和函数,是由所有的对象身上共同的属性和行为抽离出来的
#对象的作用:实现函数和属性的调用执行的
函数是封装代码的基本单位,类和对象的封装是属于更高级的封装方式,在类中经常会声明一些对象属性,用来保存数据,在类中声明的函数,用来操作数据的不同的功能可以封装不同的函数
1.2 举例
#在python中如何声明一个类型:
#class 班级群体
# object 继承父类 object基类、顶级父类
class People(object):
#pass 保证语法完整性
# pass
#人出生时,已具有的属性,如:性别,年龄,身高
#初始化函数,在创建对象的时候自动调用 __init__ 内置函数
def __init__(self,name,age,phone):
#在这个函数中需要将创建对象时应该拥有的一些属性赋值
#对象.属性名 = 属性值
self.name = name
self.age = age
self.phone = phone
# 使用People类创建一个对象
# 创建对象的基本格式:对象名=类名()
# 当创建一个对象时,会在内存中开辟一块空间,来存放这个对象,这个对象是有一个地址的
# 每次创建的对象都是一个单独个体,他们的内存地址都是不一样的
p1 = People('张三', 22, 110)
# <__main__.People object at 0x000000000074B390>
# 0x000000000074B390 这是内存地址
# 内存:程序运行时,在计算机中占用的空间
# python中自动管理内存的
# 电脑上的500GB 1TB这种事硬盘空间(存储空间)
print(p1)
#获取对象的属性值
#格式:对象.属性名
name = p1.name
print(name)
age = p1.age
print(age)
#对象.属性名 = 属性值
# 修改对象的属性值
p1.name = '李四'
print(p1.name)
1.3 setattr()
#python 中用来设置对象属性值的函数
#1.要设置属性值的对象 2.要设置的属性名3.要设置的属性值
setattr(p1,'age',21)
print(p1.age)
# 可以给对象添加新的属性
#对象.属性名 = 属性值 如果这个属性不存在,那就是添加属性
p1.sex = '男'
1.4 delattr()
#删除对象的属性
#对象的属性被删除之后,就不能再使用了
#AttributeError:sss 要删除的属性不存在
del p1.sex
#删除对象属性的函数
#1.要删除的对象 2.要删除的属性名
delattr(p1,'phone')
#删除之后,就不能在使用这个属性了
# print(p1.phone)
1.5 小例子
#setattr 动态添加或者修改属性
attr_dict = {'iq':'150','eq':'150','color':'yelow'}
print(attr_dict.items())
#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.eq)