# class A:
# staticVariable = 'v1.0'
# a = A()
# print(a.staticVariable)
# a.staticVariable = 'v1.1'
# print(a.staticVariable) # v1.1
# print(A.staticVariable) # v1.0
# 使用对象.属性的方法修改不可变数据类型的静态属性,其实是给对象新设置了一个属性
# 只对本对象生效,因此,要修改类属性,要使用类名.属性来修改
# class A:
# staticVariable = ['v1.0']
# a = A()
# print(a.staticVariable)
# a.staticVariable[0] = 'v1.3'
# print(a.staticVariable)
# print(A.staticVariable)
# 若类静态属性为可变数据类型,使用对象名.属性名的方式修改元素值是允许的,但是对整个变量名重新赋值是不允许的
# 使用对象名.属性名访问属性时,若本对象没有则倒类中找
# 面向对象的组合--一个类的属性是另一个类的实例化对象
# 创建一个学员类
# class Student:
# def __init__(self,name,age,project):
# self.name = name
# self.age = age
# self.project = project # 传入一个对象,即为组合
#
# def show(self):
# print("%s,%s岁,正在考%s证书,需要练习%s个月,价格是:%s" %(self.name,
# self.age,
# self.project.name,
# self.project.period,
# self.project.price
# ))
# # 创建一个证书项目类
# class Project:
# def __init__(self,name,period,price):
# self.name = name
# self.period = period
# self.price = price
#
# c1 = Project('c1',3,4500)
# xiaoming = Student('小明',18,c1)
# xiaoming.show()