python之初识面向对象
一、面向过程与面向对象
面向过程的编程方式着眼于具体的问题,为了解决某个具体的问题写一套流水线式的代码,控制在什么时候做什么事,这种编程方式适合代码写完就很少改动的场景,比如Linux内核,Git等
面向对象的编程方式着眼于一个个对象,先把同类对象的所有共同特征提取出来写成一个类,然后通过在实例化过程中传递的参数不同产生一个个不同的对象,然后让这些对象自己去交互,最后的结果无法预测。这种编程方式适合程序运行结果随时变化的场景,比如游戏,互联网应用,企业内部软件等
二、面向对象第一步:类的定义
类定义的关键字是class后面是类名,类名后的括号中是该类的父类。类里面定义在所有方法前面的变量就是类属性,是所有由这个类实例化的对象共有的属性,然后就是__init__方法,它是复制实例化对象过程中初始化对象属性的,最后就是类的动态属性,动态属性也是所有对象共有的,需要注意的是类属性和对象属性统称静态属性,简称属性,动态属性简称方法,然后定义方法时自动生成的形参self需要传递的是对象本身,但是不需要我们手动传。比如
class Person(Object): role='Chinese' #类属性 def __init__(self,name,life_value,aggr): #构造函数,初始化对象属性 self.name=name self.life_value=life_value self.aggr=aggr def attack(self,enemy): #动态属性 enemy.life_value -=self.aggr
类名的作用:
1、查看类属性
2、修改类属性
这里需要说明的是如果用对象去修改类属性,并不会对类属性进行修改而是在对象的内存中产生一个和类属性同名的变量,之后这个对象调用的都是这个变量了。
3、查看方法
类名只能查看方法的内存地址,无法调用方法执行
三、面向对象第二步:实例化
定义了一个类就需要用它产生一个个的对象,这样才能让对象进行交互啊,这个从类到对象的过程就叫做实例化,产生的东西既叫对象也叫实例,都是一回事。那么实例化的时候都发生了什么呢?在我们实例化一个对象的时候实际上就是在内存中开辟一个独立于类的内存空间,然后调用类中的__init__方法将类中的对象属性用传入的参数填充,然后建立到类属性和方法的引用,因为类属性和方法是所有由这个类产生的对象共有的所以不需要每个对象都复制一份。
对象的作用:
1、调用属性,不管类属性、对象属性、方法都可以调用,除了以下划线开头的类属性,因为这是私有属性了只能在类的内部调用
2、给对象自己添加属性,直接对象.新属性名=新属性值就可以

浙公网安备 33010602011771号