面向对象 - 封装

 

面向对象编程

1、面向对象不是所有情况都适用

2、面向对象编程

  a, 定义类

    class 类名:

      def 方法(self,参数)

        代码块

  b, 根据类创建对象,也叫做创建类的实例

 1 举例:
 2 class Oldboy:
 3     def fuc(self,args):
 4         print('Goodday',self) 
 5 
 6     def recod(self,args,kwargs):
 7         pass
 8 
 9 obj = Oldboy()
10 print(obj)
11 obj.fuc('hello')
12 
13 # outputs
14 <__main__.Oldboy object at 0x00000065F1B04080>
15 Goodday <__main__.Oldboy object at 0x00000065F1B04080>        

3、self为形式参数,由python内部自行传递,哪个对象调用类的方法,self就指向哪个方法的内存地址(如上例,self传递的就是obj)
4、面向对象的特性:封装

在创建实例(类+括号)时,就是在类中执行__init__(self)方法

 1 class Foo:
 2     # def __init__(self,args):
 3     #     self.name = 'alex'
 4     #     self.backend = args
 5      def __init__(self):
 6         print('init')
 7 
 8      def fuc(self):
 9     pass
10 
11 
12 obj = Foo()  ==> init     

通过以上实例,我们就可以通过__init__(self)来进行封装  __init__(self) 也叫做构造方法

 1 1 class Foo:
 2  2     def __init__(self,args): --> 被称为构造方法
 3  3         self.name = 'alex'
 4  4         self.backend = args  
 5  5 ==> 通过__init__(self) 把www.etiantian.org封装在了self.backend 
 6  6 
 7  7     def fuc(self):
 8  8     print(self.backend)
 9  9 
10 10     def recod(self):
11 11     print(self.backend)
12 12 
13 13 obj = Foo('www.etiantian.org')
14 14 obj.fuc()        ==>  www.etiantian.org
15 15 obj.recod()        ==>  www.etiantian.org                

 面向对象应用场景
  1,封装参数,当同一类型的方法具有相同参数时,直接封装到对象即可
  2,以类为模板,可以创建多个对象,并且每个对象封装的数据可以不一样

 

posted @ 2016-09-14 17:24  EthanCui  阅读(57)  评论(0)    收藏  举报