基于python的-类和对象详解1

# -*- 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)











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值