python-面向对象基础篇-对象属性的增删改查

什么是python的面向对象

python中可以说是万物皆对象,python的对象类型十分的全面,包括了所有的类型(就比如一个整数1,它的对象类型就是 int), 不像其他的面向
对象编程的语言会分为几种类型, 其中能作为对象类型的数据类型只是其中的一部分。

一、创建一个对象

我们在创建一个对象的时候,往往需要先定义一个类,因为类是某个具体对象的抽象表现。

class Mate:
    
    def cook(self):
        print('做饭')
        
    def wash(self):
        print('洗衣服')
    
    def sleep(self):
        print('睡觉')


zhangsan = Mate()

这里我们创建一个Person类,抽象出人可以做出的一些行为,
在下面我们实例化一个法外狂徒张三, 就可以实现使用上面的行为
栗子:

zhangsan.cook()
zhangsan.wash()
zhangsan.sleep()
运行结果:
做饭
洗衣服
睡觉

二、对象属性

1、对象属性的添加

添加属性时候我们可以直接通过对象名+要添加的属性名字 = 值
栗子:

class Person:

    def cook(self):
        print('做饭')

    def wash(self):
        print('洗衣服')

    def sleep(self):
        print('睡觉')


zhangsan = Person()
zhangsan.skill = '吃喝嫖赌'
print(zhangsan.skill)
运行结果:
吃喝嫖赌

在这里我们可以看到我们为法外狂徒张三添加一个技能属性,我们通过直接打印zhangsan.skill判断是否添加成功,这里成功打印,所以添加成功、

2、对象属性的查询

我们查询的时候我们同样可以使用直接打印我们需要查询的属性

print(zhangsan.skill)
运行结果:
吃喝嫖赌

我们也可以使用——dict——方法直接查看张三中所有的属性

print(zhangsan.__dict__)
运行结果:
{'skill': '吃喝嫖赌'}

3、对象属性的修改

对象属性的修改可以直接重新使用 对象名+要添加的属性名字 = 值 的方法来修改属性。

zhangsan.work = '街溜子'
zhangsan.work = '送外卖'
运行结果
送外卖

当我们修改数对象属性的时候,对于不可变类型在修改的时候会在内存中开辟出新的内存空间, 可变类型则不会。
栗子:
当法外狂徒战三悔过自新不当找了新工作

zhangsan.skill = '吃喝嫖赌'
zhangsan.work = '街溜子'
print(zhangsan.work, 'id = ', id(zhangsan.work))
zhangsan.work = '送外卖'
print(zhangsan.work, 'id = ', id(zhangsan.work))
运行结果
街溜子 id =  2078434322736
送外卖 id =  2078435425232

上面为不可变类型的, 我们发现这里在修改对象属性之后,对应的id值也发生了改变,即 zhangsan.work 的指向从储存 ‘街溜子’ 的内存地址 改变为储存 ‘送外卖’ 的内存地址

zhangsan.property = ['华子']
print(zhangsan.property, 'id = ', id(zhangsan.property))
zhangsan.property = ['华子', '电动车', '房子', '女朋友']
print(zhangsan.property, 'id = ', id(zhangsan.property))
运行结果:
['华子'] id =  2036484279424
['华子', '电动车', '房子', '女朋友'] id =  2036484278464

上面为可变类型的, 我们不难看出在张三悔过自新换了工作,他的财产发生改变后之后他的id值没有发生改变。这是因为列表是可变类型,在修改的时候我们直接在原来内存地址中添加了

4、对象属性的删除

删除对象属性十分的简单使用del方法即可
栗子:

del zhangsan.property
print(zhangsan.property)

这里我们删除了张三的财产,这时我们打印就会报错

AttributeError: 'Person' object has no attribute 'property'

这是一个属性错误, 因为我们已经成功删除了张三的财产属性,所以无法打印

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值