Python之类的命名空间与组合概念

# 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()

猜你喜欢

转载自blog.csdn.net/qq_40199698/article/details/88383913
今日推荐