python--类组合类对象(二十四)
# 类组合:当类与类之间没有直接逻辑关系,但是需要将他们联合起来,就可以用组合。
class Sanjiao:
def __init__(self,x):
self.num = x
class Yuan:
def __init__(self,x):
self.num = x
class Tuxing:
def __init__(self,x,y):
self.sanjiao = Sanjiao(x)
self.yuan = Yuan(x)
def print_num(self):
print('图形中公有%d个三角形,和%d个圆形'%(self.sanjiao.num,self.yuan.num))
tuxing = Tuxing(3,5)
tuxing.print_num()
'''
类、类对象、实例对象
'''
#新建一个类A
class A:
number = 0
#新建3个实例对象
a = A()
b = A()
c = A()
#输出3个对象引用的number都为0
print(a.number)
print(b.number)
print(c.number)
#输出c对象引用的number为10,其他两个对象都是0.说明c对象改变的不是类中的number静态属性,改变的是属于c对象的number属性
print(c.number+10)
print(a.number)
print(b.number)
# 创建类对象,改变number属性值,他改变的是类下面numbr的静态属性。
A.number+=100
print(a.number)
print(b.number)
'''
在类中,如果属性的名字和方法名字相同,那么属性将覆盖方法。不能在调用同名的方法
'''
class A:
def max(self):
print('我是max方法')
a = A()
a.max()
a.max=10 #创建一个和max方法同名的属性。
print(a.max) # 只能调用max属性,不能再max方法。