9月14日学习内容整理:初识别面向对象

1、面向过程和面向对象:

(1)面向过程:针对结果编程,流水线式思维,得出固定的结果。优点是好想,但是扩展性差,容易引起安全问题

(2)面向对象:对象就是一个实实在在的,可以准确描述出来的实体

2、定义类

类:具有相同属性和方法的一类事物

对象:具有具体的属性

class  类名  :这就是定义了一种类,类名一般首字母大写

  role =  'assddff'            这就是第一了一种类属性

  def  函数名(self):  这就是定义了一种类方法(动态属性),本质就是函数,有一个必须传递的参数self

3、实例化一个对象

实例化:从类到对象的过程

对象名 = 类名()   这就得到了一个具体的对象

4、调用类方法

对象名.方法名(也就是函数名)()  调用类方法,自动传递参数,这个参数就是对象本身

5、_ _init_ _函数

def  _ _init_ _(self,参数1,参数2,参数3,....)

  self.变量名 =  参数1

  self.变量名 =  参数2

  self.变量名 =  参数3       这里的self相当于字典,self.变量名相当于key,先这么理解

怎么用这个_ _init_ _函数:

对象名 =  类名(参数1,参数2,参数3,...)这样就会自动调用_ _init_ _函数

6、类属性和对象属性

类属性:直接写在类里面的,类名和对象名都可以直接用.属性名调用,

对象属性:写在init里面的self.变量名,只能对象名调用

7、面向对象的交互

对象属性(函数)里加参数,这样就可以实现不同对象(甚至是不同类对象)之间的交互

 

 

注意:

1、不要用对象去调用类属性

2、写面向对象的时候先要搞清楚哪些时一类,哪些是对象,哪些是对象属性

3、面向对象什么时候用:

(1)要用到很多角色,某一类拥有相同的特点或者说是属性

(2)需要反复取传递多个参数

 

举例:

import math
class Circle():     #定义类
    role='circle'     #类属性
    def __init__(self,r):    
        self.r=r     #对象属性
    def area(self):           #动态属性
        print(math.pi*self.r**2)
    def per(self):       
        print(math.pi*self.r*2)
whl=Circle(3)     #实例化对象
whl.area()        #调用方法,self就是whl
whl.per()

 

posted @ 2017-09-14 15:58  九二零  阅读(93)  评论(0编辑  收藏  举报