关于类对象的增:
方法一
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)
总结:对于类对象的增查改删,只有查可以通过对象来进行访问,其他的只能用类对象本身来进行操作。类的属性被各个该类创建的对象所共享!!!