七星白树

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

day23笔记

一、面向对象命名空间

  1、对于类中的静态属性

    当类去调用时,就是调用类中的属性

当类中的对象去调用时,先在自己的命名空间去寻找,如果找不到再到类的命名空间去寻 找,都没有则会报错

  
1 class A:
2     role="person"
3     def __init__(self,role="dog"):
4         self.role=role
5 
6 a=A()
7 print(A.role)            #结果为person
8 print(a.role)            #结果为dog
静态属性

2、对于类的动态属性(方法)

  1、这个方法本身储存在类中

  2、当类中的对象去调用类中的方法时,依赖于一个存有此方法地址的的地址簿

3、对于对象的属性

  1、对象的属性就存在于对象的命名空间中

  2、只能被对象调用、修改,不能被类调用

 

二、组合

  当在一个类中使用了另一个类中的方法,就叫组合

  使用组合增强了代码的重用性

  
 1 class Circle:
 2     def __init__(self,r):
 3         self.r = r
 4 
 5     def area(self):
 6         return self.r*self.r*3.14
 7 
 8     def perimeter(self):
 9         return self.r*2*3.14
10 
11 class Ring:
12     def __init__(self,r_out,r_in):  #10,5
13         self.c_out = Circle(r_out)
14         self.c_in = Circle(r_in)
15 
16     def area(self):
17         return self.c_out.area() - self.c_in.area()
18 
19     def perimeter(self):
20         return self.c_out.perimeter() + self.c_in.perimeter()
21 
22 r1 = Ring(10,5)
23 print(r1.area())
24 print(r1.perimeter())
简单组合

 

 

  

posted on 2017-09-15 15:36  七星白树  阅读(49)  评论(0)    收藏  举报