python--类组合类对象(二十四)

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方法。

 

你可能感兴趣的:(#,python【类&对象】)