ChuannBlog

5.3封装(Encapsulation)

封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。
所以,在使用面向对象的封装特性时,需要:

  1. 将内容封装到某处
     class Person:
         Ethnicity = 'human'
         def __init__(self, name, age):
             self.name = name
             self.age = age
         def study(self, book):
             print('%s is studying %s' % (self.name, book))
     jack = Person('jack', 18)
    
    • 这里的Person类定义了name、age属性,study方法
    • 将Person实例化为jack,并将name、age属性,study方法封装进了jack
  2. 从某处调用被封装的内容
     print('%s is %s years.' % (jack.name, jack.age))
     jack.study('python')
    
    • jack对象看起来什么都没有定义,其实在Person类实例化为jack的时候就已经将定义好的属性和方法封装进jack对象了,所以直接就能使用
  3. 封装分两类
    • 数据封装,将数据封装到对象中
      • 上文中的Person类定义了name、age属性
    • 封装方法和属性,将一类操作封装到一个类中
      • 上文中的Person类定义了study方法,使得Person的对象都具有相同方法