(七)面向对象基础(一)

2018-06-18 02:41:41来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

面向对象基础
  • 面向过程:根据业务逻辑从上到下写代码
  • 面向对象:将数据与函数绑定到一起,分类进行封装,每个程序员只要负责分配给自己的分类,这样能够更快速的开发程序,减少了重复代码
  • 面向对象基于面向过程
        面向对象(object-oriented ;简称: OO) 至今还没有统一的概念 我这里把它定义为: 按人们 认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设 计、实现软件的办法。
        面向对象编程(Object Oriented Programming-OOP) 是一种解决软件复用的设计和编程方法。 这种方法把软件系统中相近相似的操作逻辑和操作 应用数据、状态,以类的型式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。
 
对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念——类
   
  类的构成:类名、属性、方法
  • 类的名称:类名(安装大驼峰命名法)
  • 类的属性:一组数据
  • 类的方法:允许对进行操作的方法 (行为)   {附:方法与函数的区别:方法的第一个形参必须是self}
一个类可以产生多个对象,对象间彼此独立,各自独立额度使用功能
 
1、class Hero():    # 经典类

2、class Hero(object):  # 新式类定义形式
    def info(self):
        print("英雄各有见,何必问出处。")
# 查看类的文档说明,也就是类的注释
print(Hero.__doc__)
 
  • 定义类时有2种形式:新式类和经典类(python3只有新式类)
  • object 是Python 里所有类的最顶级父类;
  • info 是一个实例方法,第一个参数一般是self,表示实例对象本身
  • 解释器会把调用方法的对象作为第一个实参来传递
 
魔法方法
    在适当的事迹会自动运行的方法
    ①方法名两边各有两个下划线②名字都是由官方规定
    # Python 的类里提供的,两个下划线开始,两个下划线结束的方法,就是魔法方法
    # 如果类面没有写__init__方法,Python会自动创建,但是不执行任何操作,
    # 如果为了能够在完成自己想要的功能,可以自己定义__init__方法,
    # 所以一个类里无论自己是否编写__init__方法 一定有__init__方法。

 

__init__(self)方法:
作用:初始化对象的共有属性
创建对象之后会自动自行,不需要手动调用
__init__可以在self之后接收需要的参数(创建对象时传递的实参,回传递到方法的形参)
 
__str__(self)方法: 附:括号里只能接收self形参
作用:打印对象的描述信息
打印对象时会自动执行
__str__(self)方法必须要有返回值(return),且为字符串
 
附:当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了__str__(self)方法,那么就会打印从在这个方法中 return 的数据
 
__del__(self)方法:
作用:验证对象是否被销毁,释放资源
当对象被销毁的时候执行
 
__new__(cls)方法:
作用:当创建对象时执行,用于控制当前类是否能创建新对象
__new__至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供
要创建新对象,就需要调用object的__new__方法来处理
创建的新对象必须要return返回
创建对象的参数不仅会给__init__,也会传递给__new__方法
 
 
 
{总结}
  • 类的外面最好时通过方法来访问属性,而不是直接访问
  • 私有属性:在属性名前写两个下划线,这个属性只能在定义的类使用
  • 类的里面可以访问私有属性,外面不能访问
附:eval:可以把字符串当作代码来执行
       repr:可以获取到字符串的定义格式
       dir:能够查看一个对象的所有属性

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:作用域与带有循环变量的默认参数相比较问题

下一篇:pandas数据处理基础——筛选指定行或者指定列的数据