# 修改类的方法:
1,Person.country = '日本' 通过类名来修改
2,p.__class__.country = '日本' 通过实例进行修改(也是要先获取类,本质还是通过类进行修改)
# 实例可以访问类属性,但不能修改,(通过实例修改类属性,会给实例添加新的属性,不是修改,可用p.__dict__查看)
class Person(object):
country = '中国'
def __init__(self, name, age):
self.name = name
self.age = age
p =Person('李四', 24)
print(p.name)
p.name = '张三' #实例属性可以修改 没有该属性就是添加
print(p.country) #访问类属性
# print(p.__dict__)
# p.country = '美国' #对象不能修改类属性,这样会添加一个实例属性
# print(p.__dict__)
#修改类属性,不需要通过实例
Person.country = '日本'
print(p.country) #如果实例有该属性,访问的是实例属性,不是才会去查找类属性
#修改类的私有属性
print(Person.__dict__) #查看包装后的名称,然后在修改(非常规手段)
Person._Person__sink_color = '白种人'
print(p.__class__) #通过对象获取类属性
p.__class__.country = '加拿大'
print(Person.__dict__)