Day3 Python面向对象编程笔记3(类属性的增查改删)
2020-03-28 20:08
881 查看
关于类对象的增:
方法一
class Money:'''这里的Money有两个作用,1.建立了一个叫Money的类 2。在内存中存储一个叫Money的变量并与Money向关联''' pass Money.num=666#类对象实际上也是一个对象,可以按照对象属性增添方法来增添 print(Money.num)#或者print(Money.__dict__)
方法二(常用):
class Money: age=18 count=666 #直接在class后面添加类属性 print(Money.age) print(Money.count) print(Money.__dict__)
关于类对象的查:
先了解Python语言的查找机制:
对于一个对象来说,如果他自身具有这个属性则查到自己的该属性就结束;如果没有,则通过__class__返回类里去查找属性。
class Money: age=18 count=1 number=666 one=Money() #让one.__class__=Money print(one.age) print(one.number) print(one.count)
class Money: age=18 weight=120 hight=180 one=Money() one.age=19 print(one.age) #这样的话就会打印出19而不是18
如果出现这种情况,说明内存中one的__class__被修改为指向Test,无法访问到Money的属性
class Test: age=100 class Money: age=10 weight=120 one=Money() one.__class__=Test print(one.age)#打印出100 print(one.weight) #不会打印出任何东西,报错
关于类对象的改:
切记万万不可通过对象去改,正确做法如下:
class Money: age=18 Money.age=19 print(Money.age)#打印出19
如果出现以下情况:
class Money: age=18 one=Money() print(Money.age) #打印出18 one.age=19 #实际是为对象创建了一个age的属性并且赋值为19,只有通过访问时,才会通过__class__来访问类属性 print(Money.age) #仍然打印出18,表面这种修改不成功
关于类属性的删:
类属性的删也不能通过对象来删除(del 只能删除直系的东西,不能删别人的)
class Money: age=18 count=100 del Money.age print(Money.age)#报错原因:Money中没有age元素
如果是如下情况:
class Money: age=18 count=100 one=Money() del one.age #报错原因:one中没有age元素 print(Money.age)
总结:对于类对象的增查改删,只有查可以通过对象来进行访问,其他的只能用类对象本身来进行操作。类的属性被各个该类创建的对象所共享!!!
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 初学Python的学习笔记9----面向对象编程(获取对象信息、实例属性和类属性)、面向对象高级编程(使用__slots__、使用@property)
- python3自学之路-笔记22—面向对象编程-类的只读属性,新式类与经典类
- Python学习笔记 7--剖析面向对象编程
- Python的面向对象编程方式学习笔记
- 学习Python数据分析随手笔记【二】numpy数组的属性
- python 学习笔记7 面向对象编程
- Python面向对象编程中关于类和方法的学习笔记
- Python 进阶_OOP 面向对象编程_类属性和方法
- python基础教程_学习笔记11:魔法方法、属性和迭代器
- python面向对象编程——学习笔记1
- Python面向对象编程——学习笔记
- Python学习手册笔记――管理属性
- Python学习笔记 7—面向对象编程
- 流畅python学习笔记:第十九章:动态属性和特性
- python笔记----day3
- python进阶学习笔记(四)——python中访问限制、创建类属性、定义实例方法、定义类方法、类的继承
- python笔记之第八天--面向对象编程OOP
- python进阶学习笔记(五)——创建实例属性、初始化实例属性
- 【笔记】Python面向对象编程
- 【Python学习笔记】面向对象编程:类和实例